JavaScript变量引用数组时出现问题

Issue with JavaScript variable references to an array

本文关键字:问题 数组 变量 引用 JavaScript      更新时间:2023-09-26

我有一个名为dict的字典,里面有三个变量

然后,我有一个数组,它必须包含字典,但每次都会向其中添加一个名为name的新变量。

现在到最后,所有的名字都变得相等了,我该如何解决这个问题?

dict = {"a" :1, "b" : 2, "c" : 3};
items = [];
item1.tempdict = dict;
item1.tempdict.name = 4;
item2.tempdict = dict;
item2.tempdict.name = 5;
item3.tempdict = dict;
item3.tempdict.name = 6;

感谢

问题是您要创建dict对象,然后只需在每个项对象中添加对单个dict对象的引用。每次将dict对象附加到项目时,都需要克隆它,以获得它的克隆版本。

关于如何做到这一点的信息可以在这里找到。

从上面的链接中,对于没有函数的基本bean对象,一种可能的方法是使用以下技术:

var clonedObject = JSON.parse(JSON.stringify(objectToClone));

不过,如果您的对象是众所周知的,并且可以很容易地重新创建,那么还有其他方法可以做到这一点,例如通过构造函数。希望能有所帮助:)