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

letarr=[{"a":1},{"b":2}];arr.map((item,index)=>{item.key=index;});console.log(arr);//[{a:1,key:0},{b:2,key:1}]这个应该是改变了arr数组了,难道我理解错了?
眼眸繁星
浏览 269回答 2
2回答

大话西游666

对象是引用类型,传递的是地址,所以你的item.key=index会修改原数组中的对象如果是这样就不会改变了letarr=[1,2]arr.map((item,index)=>item=3)//[3,3]console.log(arr)//[1,2]

跃然一笑

map不会改变原数组说的是返回的新数组,另外数组是引用类型,你在循环里面直接把原数组改了,不变才怪。去看看map的用法吧。你这种写法别说用map了,你直接arr[0]='a',这样原数组更改变了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript