【问题标题】:for of loop in javascript to create uppercased strings [duplicate]javascript中的for循环创建大写字符串[重复]
【发布时间】:2021-08-07 11:11:24
【问题描述】:
let arr = ["new", "name", "need"]

for (let item of arr) {
  item.toUpperCase();
}

console.log(arr)            /// [ 'new', 'name', 'need' ]

我正在尝试使用 for of 循环创建一个大写项数组。但是我一直得到相同的数组。我做错了什么?

【问题讨论】:

  • 您没有使用该大写值,您只是将其大写,就是这样。

标签: javascript


【解决方案1】:

toUpperCase 返回一个新字符串,它不会更改字符串。

let arr = ["new", "name", "need"]
const newArr = []
for (let item of arr) {
  newArr.push(item.toUpperCase());
}

console.log(newArr)

您也可以使用 map 在不显式循环的情况下执行相同操作

let arr = ["new", "name", "need"]
const newArr = arr.map(item => item.toUpperCase())
console.log(newArr);

【讨论】:

    【解决方案2】:

    这是因为尽管您将数组项的值更改为大写,但您从未将该项设置回数组中。

    此代码不会更改原始数组项,而是创建一个新的大写字符串:

    item.toUpperCase();
    

    相反,循环遍历数组并将数组项设置为大写版本,如下所示:

    let arr = ["new", "name", "need", "test"]
    
    for (i = 0; i < arr.length; i++) {
      arr[i] = arr[i].toUpperCase();
    }
    
    console.log(arr)

    【讨论】:

      【解决方案3】:

      您不会在任何地方赋予该价值。你必须把它分配到某个地方。

      let arr = ["new", "name", "need"]
      let updatedArr = [];
      
      for (let item of arr) {
        const value = item.toUpperCase();
        updatedArr.push(value);
      }
      
      console.log(updatedArr) 

      map() 的简单解决方案:

      const arr = ["new", "name", "need"]
      const updatedArr = arr.map(item=>item.toUpperCase());
      console.log(updatedArr)  

      【讨论】:

        【解决方案4】:

        toUpperCase 返回字符串的大写版本。它不会改变现有的字符串。

        您需要在某处分配返回值。

        let arr = ["new", "name", "need"]
        
        for (let i = 0; i < arr.length; i++) {
          arr[i] = arr[i].toUpperCase();
        }
        
        console.log(arr);

        【讨论】:

          【解决方案5】:

          let arr = ["new", "name", "need"];
              
          arr = arr.map(item => {
             return item.toUpperCase();
          });
              
          console.log(arr);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-11-21
            • 2021-10-06
            • 2019-02-20
            • 1970-01-01
            • 2021-02-02
            • 2017-01-30
            • 1970-01-01
            相关资源
            最近更新 更多