数组的map方法的坑
!!!好可怕的问题,数组的map操作不会改变原数组这句话,不严谨啊,好坑。
在学习js的时候,老师就告诉我们:“数组的map方法是不会改变原数组的”,我是一个品学兼优的好学生,自然对老师的话深信不疑。可是在做我的项目中,就是因为这句话把可把我害惨了,头发都掉了一把。好了废话不多说,看下图就知道了:
看到了吗,arr的json里面也加了height,所以数组的map方法在数组元素是非引用类型时不会改变原数组,数组元素是引用类型时是会改变原数组的。举一反三数组其他的方法例如:filter、forEach等一些遍历数组的方法也是可能改变原数组的哦,小伙伴们用的时候一定要小心。
解决办法:这种与引用类型相关的类似问题可以用JSON.parse(JSON.stringify(arr))将原数组深度拷贝一个newArr,再对newArr调用map等方法就可以了。如下图:
好了,小编今天的博客就写到这里,大家若果有不同的见解或者疑问,可以给小编留言哦,小编看到会第一时间回复的。