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);
weixin_慕斯卡9299553
TA贡献1条经验 获得超0个赞
return index.a+=1 的时候把原数组也赋值了
不要等号,改成return index.a+1 原数组就不变了
或者改成return {'a':index.a+1}
添加回答
举报
0/150
提交
取消