☘️js map会不会改变原数组?
2019-08-21 本文已影响0人
索隆萨克
答案是需要根据所操作的数组内容来区分,如果数组内容是引用类型,那原数组就会被改变。
如果原数组是值类型,那原数组就不会被改变。
看看下面的小例子就懂了。
const arr = [{ name: "derek" }, { name: "emma" }];
const temp_arr = arr.map(v => {
v.age = 18;
return v;
});
/**
* 打印出的结果其实是相等的,因为改变map---》里面的v是一个对象,对象是引用类型,所以两个数组相等。
*/
console.log('arr:', arr);
console.log('temp_arr:', temp_arr);
console.log('*'.repeat(80));
/**
* 下面这种操作值类型就不会改变了
*/
const arr_value = [1, 2, 3];
let temp_arr_value = arr_value.map(v => {
return v*v;
});
console.log('arr_value:',arr_value);
console.log('temp_arr_value:', temp_arr_value);
结果:
image.png