为了账号安全,请及时绑定邮箱和手机立即绑定

有没有童鞋遇到过同样的问题:JS中 map() 方法有问题?求指导!

有没有童鞋遇到过同样的问题:JS中 map() 方法有问题?求指导!

眼眸繁星 2019-06-10 09:20:49
letarr=[{"a":1},{"b":2}];arr.map((item,index)=>{item.key=index;});console.log(arr);//[{a:1,key:0},{b:2,key:1}]这个应该是改变了arr数组了,难道我理解错了?
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

对象是引用类型,传递的是地址,所以你的item.key=index会修改原数组中的对象
如果是这样就不会改变了
letarr=[1,2]
arr.map((item,index)=>item=3)//[3,3]
console.log(arr)//[1,2]
                            
查看完整回答
反对 回复 2019-06-10
?
跃然一笑

TA贡献1826条经验 获得超6个赞

map不会改变原数组说的是返回的新数组,另外数组是引用类型,你在循环里面直接把原数组改了,不变才怪。去看看map的用法吧。你这种写法别说用map了,你直接arr[0]='a',这样原数组更改变了。
                            
查看完整回答
反对 回复 2019-06-10
  • 2 回答
  • 0 关注
  • 268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信