var arr = ['Foo'];
arr.forEach(function(item){
console.log(item);
item = 'Lorem';
console.dir(arr[0]);
});
for (var item in arr){
arr[item] = 'Ipsum';
console.dir(arr[0]);
}
就像上面的代码所示,我注意到将项目的值更改后传递给 forEach()
回调函数不会导致迭代对象发生变化。
使用for...in
确实会有所改变。
为什么会这样,我应该如何更改数组中的值?
我发现在MDN上,涉及此主题的内容相当令人困惑。