数组的map方法的坑

!!!好可怕的问题,数组的map操作不会改变原数组这句话,不严谨啊,好坑。

在学习js的时候,老师就告诉我们:“数组的map方法是不会改变原数组的”,我是一个品学兼优的好学生,自然对老师的话深信不疑。可是在做我的项目中,就是因为这句话把可把我害惨了,头发都掉了一把。好了废话不多说,看下图就知道了:
在这里插入图片描述
看到了吗,arr的json里面也加了height,所以数组的map方法在数组元素是非引用类型时不会改变原数组,数组元素是引用类型时是会改变原数组的。举一反三数组其他的方法例如:filter、forEach等一些遍历数组的方法也是可能改变原数组的哦,小伙伴们用的时候一定要小心。
解决办法:这种与引用类型相关的类似问题可以用JSON.parse(JSON.stringify(arr))将原数组深度拷贝一个newArr,再对newArr调用map等方法就可以了。如下图:
在这里插入图片描述

好了,小编今天的博客就写到这里,大家若果有不同的见解或者疑问,可以给小编留言哦,小编看到会第一时间回复的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值