之前使用forEach的时候基本都是给修改数组中小项的某个参数如:
这种写法是没有问题的
let arr = [
{
a:'1',
b:'2',
c:'3'
},
{
a:'1',
b:'2',
c:'3'
}
]
arr.forEach(item=>{
item.a = 'abc'
})
console.log(arr) // => [{a:'abc',b:'2',c:'3'},{a:'abc',b:'2',c:'3'}]
但是如果要覆盖数组对象的整个对象就会出现问题,如:
let arr = [
{
a:'1',
b:'2',
c:'3'
},
{
a:'1',
b:'2',
c:'3'
}
]
arr.forEach(item=>{
item = {
a:'11',
b:'2',
c:'3'
}
})
console.log(arr) // => [{a:'1',b:'2',c:'3'},{a:'1',b:'2',c:'3'}]
另外filter也会有这种问题,具体原因不清楚,如果有大神知道原因还原留言指导,谢谢!