☘️js map会不会改变原数组?

答案是需要根据所操作的数组内容来区分,如果数组内容是引用类型,那原数组就会被改变。
如果原数组是值类型,那原数组就不会被改变。
看看下面的小例子就懂了。

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,446评论 0 4
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,876评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,396评论 1 10
  • 空气有些凉,坐在这里,静默,体验自己的呼吸,等待文字的流动。 清早起来锻炼的余温还在体内流动,可以直接的体验到这一...
    Time1976阅读 1,781评论 0 1