let arr = ["new", "name", "need"]
for (let item of arr) {
item.toUpperCase();
}
console.log(arr) /// [ 'new', 'name', 'need' ]我正在尝试创建一个使用for循环的UpperCased项数组。然而,我总是得到相同的数组。我做错了什么?
发布于 2021-05-18 08:22:42
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);
发布于 2021-05-18 08:20:16
这是因为尽管您将数组项的值更改为大写,但从未将该项设置回数组中。
此代码不会更改原始数组项,而是创建一个大写的新字符串:
item.toUpperCase();相反,循环遍历数组并将数组项设置为大写版本,如下所示:
let arr = ["new", "name", "need", "test"]
for (i = 0; i < arr.length; i++) {
arr[i] = arr[i].toUpperCase();
}
console.log(arr)
发布于 2021-05-18 08:22:47
你在任何地方都不能评价这种价值。你得把它分配到某个地方。
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)
https://stackoverflow.com/questions/67582407
复制相似问题