javascript中的for循环创建大写字符串[重复]

Posted

技术标签:

【中文标题】javascript中的for循环创建大写字符串[重复]【英文标题】:for of loop in javascript to create uppercased strings [duplicate] 【发布时间】: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 循环创建一个大写项数组。但是我一直得到相同的数组。我做错了什么?

【问题讨论】:

您没有使用该大写值,您只是将其大写,就是这样。 【参考方案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);

【讨论】:

以上是关于javascript中的for循环创建大写字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript实现单词首字母大写的方法集锦

JavaScript实现单词首字母大写的方法集锦

JavaScript中怎样将字符串中的大写转换成小写同时将小写转换成大写

在 JavaScript (JSLint) 中的 for 循环之外引用“this”元素

Javascript:数组、For循环和函数

C++ 循环for 引用 for(string & : )