☘️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
上一篇下一篇

猜你喜欢

热点阅读