forEach和for of 循环中修改数组元素的值
若数组元素是基本数据类型
- 不可修改直接对forEach或for of的变量item做修改
//不可以下面这样,arr的元素不会发生改变
arr.forEach(item=>{
item=item+1;
})
for (item of arr){
item=item+1
}
- 可以通过下标取到数组元素来修改
arr.forEach((item,idx)=>{
arr[idx]=item+1
})
若数组元素是对象
- 可以修改元素的属性,不能对整个元素做修改
arr = [{ a: 1 }, { b: 1 }, { a: 2 }];
arr.forEach((item) => {
item.a = 9;
item = { c: 2 };
});
//结果:
// [ { a: 9 }, { b: 1, a: 9 }, { a: 9 } ]