javascript - 如何更改 for-of 循​​环中的元素

标签 javascript for-loop ecmascript-6

如何使用 For-of 循​​环更改数组中的对象? 代码如下:

let arr = ['a', 'b', 'c', 'd', 'e'];

for (let v of arr) {
    if (v === 'c')  {
      v = 'f';
      break;
    }       
}

console.log(arr);

我想找到第一个字母 c 并将其更改为 f,但 arr 没有更改,可能是因为它没有被引用?但是 arr 的 v 不应该使对象 v 与 arr 中的对象相同吗?

最佳答案

v 不是对数组元素的引用,它只是一个被分配数组迭代器生成的值的变量。如果您对其进行赋值,则只有变量 v 会发生变化,而数组不会发生变化。

为此,您需要显式引用该属性及其索引并为其赋值:

let arr = ['a', 'b', 'c', 'd', 'e'];
for (let [i, v] of arr.entries()) {
    if (v === 'c')  {
      arr[i] = 'f';
      break;
    }       
}
console.log(arr); // ['a', 'b', 'f', 'd', 'e']

迭代器不提供改变底层结构的方法,你需要自己做。

关于javascript - 如何更改 for-of 循​​环中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35727383/

相关文章:

javascript - vue拼接方法如何去掉商品名?

python - 如何让 python 读取 .txt 文件的每一行?

javascript - 通过系统导入时,ES6 类不是函数

node.js - 如何修复 Node 中的 ' Support for the experimental syntax ' exportDefaultFrom'当前未启用'

javascript - 数组数据在嵌套的异步箭头函数循环中丢失

javascript - 如何识别来自 JS 脚本的 http 请求和 HTML<FORM>submit 事件之间的区别

javascript - 如何在 : window. 之后恢复正常滚动 onscroll = function () { window.scrollTo(0, 0);

javascript - JS删除数组中的多项

java - 如何在共享一个共同值的多个二维数组之间进行迭代?

javascript - 使用索引遍历 JavaScript 对象