【发布时间】:2021-10-22 17:52:37
【问题描述】:
当我使用 push 方法将一个对象放入数组中,然后更改对象的值时,数组中对象的值也会发生变化。如何预防?
function onLoad() {
let array = []
let object = {}
object[1] = [1,2]
array.push(object)
object[1] = [1,3]
console.log(array)
}
onLoad();
我想要代码控制台 [{1,2}],但它会控制台 [{1,3}]。
有人知道如何解决这个问题吗?
【问题讨论】:
-
JavaScript 中的对象是通过引用复制的。为了复制它们,有几种方法,具体取决于对象的复杂性。在这种情况下,使用
assign应该合适。使用array.push(Object.assign({}, object))将克隆对象添加到数组中。
标签: javascript arrays javascript-objects