答案是:不会!
map方法不会修改原数组
当数组元素为基本数据类型时
let arr=[1,2,3,4,5]
let newArr=arr.map((item,index)=>{
item=111
return item
})
console.log(arr)//[1,2,3,4,5]
console.log(newArr)//[111,111,111,111,111]
当数组为引用数据类型时,此时原数组会改变,但这与map方法无关,这属于是访问到了对象内部并赋值
let arr=[{id:1},{id:2},{id:3}]
let newArr=arr.map((item,index)=>{
item.id=1;
return item
})
console.log(arr)//[{id:1},{id:1},{id:1}]
console.log(newArr)//[{id:1},{id:1},{id:1}]
map方法不会直接修改原数组,即使在数组元素为基本数据类型时。但当数组包含引用数据类型的元素,如对象,修改对象属性会影响到原数组,因为它们共享同一个引用。这并非map方法本身的特性,而是JavaScript中对象赋值的特性。
4453

被折叠的 条评论
为什么被折叠?



