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中怎样将字符串中的大写转换成小写同时将小写转换成大写