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}]
// 本人小白,求大神指教,勿喷,谢谢!
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}]
// 本人小白,求大神指教,勿喷,谢谢!
// slice() concat() 都是浅拷贝,整个数组的指向是不同的了,但是,里面的对象的指向是同一个,所以其实在map里执行的函数,操作的对象还是同一个。。。
list.slice(0)[0] === list[0] // truw
list.slice(0) === list // false
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
跟map没关系
js对象是引用类型,字符和数字是基本类型
基本类型传值是复制
引用类型传值是引用
举个例子:
和