我有一本名为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对象,然后在每个item对象中简单地添加对该单个dict对象的引用。每次将dict对象追加到项目时,都需要对其进行克隆,以获取该对象的克隆版本。

有关如何执行此操作的信息,请参见here

从上面的链接,对于没有功能的基本bean对象,一种可行的方法是使用此技术:

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


如果您的对象是众所周知的并且可以通过例如构造函数轻松地重新创建,则还有其他方法可以执行此操作。希望有帮助:)

09-25 21:00