首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >for of循环在javascript中创建上感知字符串

for of循环在javascript中创建上感知字符串
EN

Stack Overflow用户
提问于 2021-05-18 08:17:55
回答 5查看 151关注 0票数 0
代码语言:javascript
复制
let arr = ["new", "name", "need"]

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

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

我正在尝试创建一个使用for循环的UpperCased项数组。然而,我总是得到相同的数组。我做错了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-05-18 08:22:42

toUpperCase返回一个新字符串,它不会改变字符串的位置。

代码语言:javascript
复制
let arr = ["new", "name", "need"]
const newArr = []
for (let item of arr) {
  newArr.push(item.toUpperCase());
}

console.log(newArr)

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

代码语言:javascript
复制
let arr = ["new", "name", "need"]
const newArr = arr.map(item => item.toUpperCase())
console.log(newArr);

票数 1
EN

Stack Overflow用户

发布于 2021-05-18 08:20:16

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

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

代码语言:javascript
复制
item.toUpperCase();

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

代码语言:javascript
复制
let arr = ["new", "name", "need", "test"]

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

console.log(arr)

票数 1
EN

Stack Overflow用户

发布于 2021-05-18 08:22:47

你在任何地方都不能评价这种价值。你得把它分配到某个地方。

代码语言:javascript
复制
let arr = ["new", "name", "need"]
let updatedArr = [];

for (let item of arr) {
  const value = item.toUpperCase();
  updatedArr.push(value);
}

console.log(updatedArr) 

或用map()简化解决方案

代码语言:javascript
复制
const arr = ["new", "name", "need"]
const updatedArr = arr.map(item=>item.toUpperCase());
console.log(updatedArr)  

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67582407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档