使用 Array.prototype.slice() 深度复制数组
Deep copy an array with Array.prototype.slice()
我知道我们可以使用 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}]
有人向我展示了在这种情况下如何变通。谢谢。
您可以使用 JSON 对象来序列化和反序列化数组。
var a = [{},{"chosen": true}];
var b = JSON.parse(JSON.stringify(a));
b[0]["propa"] = 1;
console.log(a);
相关文章:
- 正在复制数组并提取
- 在javascript/angular中创建播放列表(按值复制数组,但按引用设置嵌套对象)
- javascript中嵌套对象的深度复制数组
- 如何在javascript中复制数组的值并将其推送至相同的数组
- 用javascript将一个对象数组复制到另一个数组中(深度复制)
- 在Knockout.js中复制数组
- 猫鼬 + lodash 扩展对象复制数组不正确
- 在 Angular 2 + TypeScript 中深度复制数组
- 对象的深度克隆数组
- 如何复制或复制数组数组
- 为什么我在这里陷入无限循环?- 在 Javascript 中复制数组
- 如何在没有递归的情况下迭代n级深度的数组
- 数组.切片不起作用,它只是原样复制数组,而不是减去一些值
- 复制数组——>堆栈或堆溢出
- 如何在javascript中添加(复制)数组内容到另一个数组,而不替换数组的内容
- 从jQuery ajax调用中复制数组
- 如何在phonegap中复制数组到文件
- 如何动态复制数组从php到javascript
- 使用 Array.prototype.slice() 深度复制数组
- Javascript计算排列——为什么当我不复制数组时,我的代码返回不需要的解决方案?