【问题标题】:Convert array into upper case将数组转换为大写
【发布时间】:2015-04-18 15:32:56
【问题描述】:

我有一个数组,我想将其更改为大写,但我无法让它工作。请帮我。

var array2 = ["melon","banana","apple","orange","lemon"];

array2.toUpperCase()

我也尝试了以下方法,但它也不起作用。

array2.map(toUpperCase);

提前致谢!

【问题讨论】:

  • 这可能对你有帮助:stackoverflow.com/questions/9939803/…
  • 您的尝试没有成功,因为 a) 数组没有 toUpperCase 方法,b) 没有 toUpperCase 函数。
  • 这行得通:array2.map(fruit => fruit.toUpperCase())

标签: javascript arrays


【解决方案1】:

你应该在地图中使用处理函数:

var array2 = ["melon","banana","apple","orange","lemon"];
array2 = array2.map(function(x){ return x.toUpperCase(); })

for more information about map

编辑:是的,你可以这样做

toUpper = function(x){ 
  return x.toUpperCase();
};
array2 = array2.map(toUpper);

【讨论】:

  • 感谢您的帮助!当使用 .map(function(x)... 时我应该总是定义一个函数吗?或者我可以使用已经存在的函数吗?如果是,那我该怎么写?谢谢
  • @BjornRunow:你只需要传递一个函数。 .map 不在乎它来自哪里。
  • @BjornRunow 检查帖子
  • new_array = array2.map(function(x){ return x.toUpperCase() }); (map 返回一个新数组,但示例表明它会更改原始数组)
  • 答案是错误的 :( 见 Marcel 的回答:stackoverflow.com/a/29719380/1786393
【解决方案2】:

这可能是最简单的解决方案,无需遍历数组。

const yourArray = ["apple","banana"];
const upperCasedArray = String(yourArray).toUpperCase().split(",");
//OR
const upperCasedArray = yourArray.toString().toUpperCase().split(",");

首先我们将数组转换为字符串,然后使用字符串的 toUpperCase() 方法将该字符串全部大写,然后使用 "," 将其拆分,这样我们就得到了一个大写的新数组。

【讨论】:

    【解决方案3】:

    尝试循环遍历每个元素并将其设为大写。

    for(var i = 0; i < array2.length; i++){
        array2[i] = array2[i].toUpperCase();
    }
    

    【讨论】:

    • - 用于在 javascript 中使用 int
    【解决方案4】:

    你可以用这个:

    var a = ['this','is','test'];
    
    a.map(f=>{ return f.toUpperCase(); });
    

    【讨论】:

    • 你正在使用 ES6。 return + 大括号是不必要的...
    【解决方案5】:

    toUpperCase() 不要更改值。 试试

    array2 = array2.map(function (e) { 
        return e.toUpperCase()
    });
    

    【讨论】:

    • 马塞尔是对的。他的答案是正确的。您需要能够将 map 函数存储在另一个变量中,而不是像 @eddyparkinson 指出的那样尝试改变原始数组。
    【解决方案6】:

    您可以将 toUpperCase() 方法添加到 Array.prototype 中:

    Array.prototype.toUpperCase = function(){
       return this.map( (el) => (typeof el === "string") ? el.toUpperCase() : el)}
    

    【讨论】:

      【解决方案7】:

      Map 是我推荐的方式,但这里有一个替代方法,可能会帮助希望了解对象原型上使用的应用的人。

      这是一个数组的示例,它通过 .apply() 借用 String 对象的 .toUpperCase() 方法并在所述数组上使用它。使用 .apply() 将数组强制转换为字符串,然后使用 .split() 方法将其转换为大写数组。

      arr = ["fulu", "nulu", "hulu"];
      var arrToUp = String.prototype.toUpperCase.apply(arr).split(",");
      
      console.log(arrToUp)
      //["FULU", "NULU", "HULU"]
      

      【讨论】:

      • 好的,但最好不要在数据中出现昏迷。
      • 以防万一,arr = ["fu,lu", "nulu", "hulu"]
      【解决方案8】:

      据我所知,JavaScript 并不真正支持数组的 toUpperCase() 函数。您必须创建一个forforeach 循环来循环遍历数组并在数组中的每个元素上调用.toUpperCase()

      你也可以像这样创建一个小函数:other question on StackOverflow

      【讨论】:

        【解决方案9】:
        var name = ['Amit','Sumit','Kumit'];
        var newname = name.join('-').toUpperCase().split();
        console.log(newname);
        

        【讨论】:

        • 以防万一,var name = ['Am-it','Sumit','Kumit'];
        【解决方案10】:

        您可以轻松转换为uppercaselowercase

        var my_array = ["melon","banana","apple","orange","lemon"];
        
        function convertToUppercase() {
          var e = document.getElementById('show');
          e.innerHTML = "Uppercase: " + String(my_array).toUpperCase().split(",");
          console.log(String(my_array).toUpperCase().split(","));
        }
        
        function convertToLowercase() {
          console.clear();
          var e = document.getElementById('show');
          e.innerHTML = "Lowercase: " +  String(my_array).toLowerCase().split(",");
          console.log(String(my_array).toLowerCase().split(","));
        }
        button {
          background: #0095ff;
          color: white;
          border: none;
          border-radius: 3px;
          padding: 8px;
          margin: 10px;
          cursor: pointer;
          -moz-box-shadow: 0 0 8px #999;
          -webkit-box-shadow: 0 0 8px #999;
           box-shadow: 0 0 8px #999;
        }
        
        p {
          margin: 0;
        }
        <button onclick="convertToUppercase()">Convert to Uppercase</button>
        <button onclick="convertToLowercase()">Convert to Lowercase</button>
        <p id="show"></p>

        【讨论】:

        • 以防万一,my_array = ["me,lon","banana","apple","orange","lemon"]
        【解决方案11】:
        var arr = ["hamed","hassan","hema","zeiad","saad","omar","ali","sayed","ahmed"];
        var str = String(arr).toUpperCase().split(",");
        

        【讨论】:

        • 以防万一,arr = ["ha,med","hassan","hema","zeiad","saad","omar","ali","sayed","ahmed"]
        【解决方案12】:

        下划线.js

        如果你正在使用 Underscore.js 并且不能使用 ES6 细节,那么它是这样的:

        _.map( array2, function( value ){ return value.toUpperCase() } )
        

        【讨论】:

        • 为什么有人会用一个庞大的库替换完全原生的功能
        • @LukeRobertson 如果您本身可以访问.map,那就去吧。在撰写本文时,.map 函数不是没有 ES6 的原生方法。
        【解决方案13】:
        var array2 = ["melon","banana","apple","orange","lemon"];
        
        array2.map(fruit => fruit.toUpperCase())
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-17
          • 2011-07-21
          • 1970-01-01
          • 2022-01-24
          • 2011-10-29
          • 1970-01-01
          相关资源
          最近更新 更多