嗨,我的代码中有这个简单的脚本,
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而不是c)。
使用d.splice(0, 3)
它应该从'd'删除为什么它也会从'c'中删除?有任何想法吗 ??我在哪里错过了什么,请指导我。
答案 0 :(得分:3)
var d = c;
这是引用数组,而不是重复它。
要复制它并使d
成为一个完全独立的数组,请使用.slice(0)
var d = c.slice(0)