对数组的JavaScript变量引用问题

时间:2016-05-05 13:53:22

标签: javascript dictionary

我有一个名为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;

感谢

1 个答案:

答案 0 :(得分:1)

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

可以找到有关如何执行此操作的信息here

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

#%RAML 1.0
types:
    Url:
        properties:
            url:
                type: string
                example: http://www.cats.com/kittens.jpg
                description: |
                    The url to ingest.

    File:
        properties:
            filename:
                type: string
                example: kittens.jpg
                description: |
                    Name of the file that will be uploaded.


    Item:
        description: |
            An example of a allowing multiple types yet requiring 
            one AND ONLY one of two possible types using RAML 1.0
        properties:
            ext: 
                maxProperties: 1
                type: File | Url
        examples:
            file_example:
                content:
                    ext:
                        filename: video.mp4
            url_example:
                content:
                    ext:
                        url: http://heres.a.url.com/asset.jpg
            should_fail:
                content:
                    ext:
                        url: http://heres.a.url.com/asset.jpg
                        filename: video.mp4

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