为了账号安全,请及时绑定邮箱和手机立即绑定

js数组map方法,如果原数组中是对象或数组,原数组也改变,为什么?

js数组map方法,如果原数组中是对象或数组,原数组也改变,为什么?

沧海一幻觉 2018-11-16 18:14:57
var list = [{'a': 1},{'a': 2}];var newList = list.map(function(index){    return index.a += 1;});console.log(newList,'newList',list,'list');// list也改变了 list = [{'a': 2},{'a': 3}]// 本人小白,求大神指教,勿喷,谢谢!
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

跟map没关系

js对象是引用类型,字符和数字是基本类型

基本类型传值是复制

引用类型传值是引用

举个例子:

var a = 1;

var b = a;

b++;

console.log(a);

var a = [1];

var b = a;

b[0]++;

console.log(a);


查看完整回答
1 反对 回复 2018-12-07
?
weixin_慕斯卡9299553

TA贡献1条经验 获得超0个赞

return index.a+=1 的时候把原数组也赋值了

不要等号,改成return index.a+1 原数组就不变了

或者改成return {'a':index.a+1}

查看完整回答
反对 回复 2019-10-16
  • 2 回答
  • 0 关注
  • 2338 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信