我知道我们可以使用Array.prototype.slice()在数组上执行深层复制。
var a = [1,2];
var b = a.slice();
b.push(3);
console.log(a);
结果:
[1,2]
但就我而言,我用它来对一组对象进行深层复制。结果不是我所期待的。
var a = [{},{"chosen": true}];
var b = a.slice();
b[0]["propa"] = 1;
console.log(a);
结果:
[{"propa":1},{"chosen":true}]
有人告诉我如何在这种情况下解决问题。感谢。
答案 0 :(得分:3)
您可以使用JSON对象序列化和反序列化数组。
var a = [{},{"chosen": true}];
var b = JSON.parse(JSON.stringify(a));
b[0]["propa"] = 1;
console.log(a);