0

嗨,我的代码中有这个简单的脚本,

var c = [{a: 'apple'},{b: 'ball'},{c: 'ball'},{d: 'ball'}];
console.log(c); //prints 3 objects
var d = c; 
d.splice(0, 3);         
console.log(c); //prints 1 object        
console.log(d); //prints 1 object 

对我来说奇怪的是拼接后的 c 和 d 结果相同(在从 c 中删除 3 个对象之后,而我只从 d 中删除而不是 c)。使用d.splice(0, 3)它应该从'd'中删除为什么它也会从'c'中删除???有任何想法吗 ??我在哪里遗漏了什么,请指导我。

4

1 回答 1

3
var d = c;

这是引用数组,而不是复制它。

要复制它并制作d一个完全独立的数组,请使用.slice(0)

var d = c.slice(0)
于 2013-11-06T11:28:55.230 回答