假设以下数组:
var arr = [0,0,{x:0,y:0}];
var newA = arr.slice(0);
arr[2].x =2;
arr[2].y =2;
console.log(newA)

x和y是应该更改的坐标。如何在调用函数之前存储它们并更改(可能推送到新数组)?带有切片的浅拷贝不会起作用,因为复制的数组将动态更新值。
答案 0 :(得分:0)
您可以使用Object.assign
复制对象,而无需创建参考。
例如:
var arr = [0,0,{x:0,y:0}];
var bak = Object.assign({}, arr[2])
在这种情况下,bak
不是对arr[2]
的引用,因此更改其中任何一项都不会影响另一方。