我有一个坐标数组(coods
),因此它们是较小的数组,我想添加新的数组。我希望它看起来像这样:
[
[0,2],
[0,1],
[0,0]
]
我希望每次代码运行时都向其中添加一个不断变化的变量new
:
coods.unshift(new);
唯一的问题是(因为我永远要发现),当将一个新数组传递给更大的数组时,它只传递一个引用,而不是值本身,所以我最终得到一个coods
数组的:
[
[0,2],
[0,2],
[0,2]
]
我该如何解决这个问题?
答案 0 :(得分:1)
您可以使用coods.unshift(new.slice())
添加数组副本。 (见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)。
或者,可能有一种方法可以改变代码的设计,这样就不会有问题,但如果没有,那么slice
可能就是这样。您可能希望使用特定的克隆函数(多个库具有它们,或编写您自己的使用切片),以使其更具语义性。