js filter注意点
使用js filter的时候碰到了一个需要注意的地方 现在记录下
const arr=[
{a:1,flag:true},
{b:3,flag:false}
]
const result=arr.filter(item=>{
if(item.flag) {
item.a=2;
return true;
}
return false;
})
console.log(result[0].a) //2
console.log(arr[0].a) //2
可以看到 输出结果都为1 所以使用filter的时候如果数组内有引用类型时改变其值会影响到原数组 即 filter返回的新数组只是浅拷贝过去的