JavaScript Array 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数组了,难道我理解错了?
慕桂英546537
浏览 795回答 2
2回答

繁星点点滴滴

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

Qyouu

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

相关分类

JavaScript