如何在数组更改之前存储对象的值?

时间:2018-04-26 12:18:51

标签: javascript arrays

假设以下数组:



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是应该更改的坐标。如何在调用函数之前存储它们并更改(可能推送到新数组)?带有切片的浅拷贝不会起作用,因为复制的数组将动态更新值。

1 个答案:

答案 0 :(得分:0)

您可以使用Object.assign复制对象,而无需创建参考。

例如:

var arr = [0,0,{x:0,y:0}];
var bak = Object.assign({}, arr[2])

在这种情况下,bak 是对arr[2]的引用,因此更改其中任何一项都不会影响另一方。