更改for-of循环中项的值

Sha*_*_IL 1 javascript ecmascript-6

我正在学习ES6中的一些新技巧,我非常喜欢数组的for-of循环.我遇到一些麻烦的一件事是,如果我想在循环内操纵当前项的值.

例如在ES5中:

var myArr = [1,2,3];
for(var i = 0; i < myArr; i++){
    myArr[i] = "moo"
}
Run Code Online (Sandbox Code Playgroud)

当在ES6中使用for-of循环时,如果我更改循环内当前项的值,则它不会反映在数组中.有没有办法做到这一点?

Ber*_*rgi 7

如果您还需要带for … of循环的数组迭代中的索引,请使用以下.entries()方法:

const myArr = [1,2,3];
for (const [i, el] of myArr.entries()) {
    myArr[i] = "moo" + el;
}
Run Code Online (Sandbox Code Playgroud)

如果您只对索引感兴趣而没有值,则可以进行迭代.myArr.keys()