0

我一直有这个问题,我只是没有实施正确的技术。它有点具体,所以到目前为止我在网上很难找到解释。好的,这里是:

我正在循环一个大的 json 对象并创建第二个对象,其中包含我以后要使用的信息的对象。

items = {};
$(data).each(function () {
    i = 0;
    $(list).each(function () {
        if (list[i]["name"] === category) {
            add = false;
        }
        i++;
    });
    if (add === true) {
        list.push({name: category,info: 0, items: items});
    }

我的问题是,当我尝试将项目添加到特定类别中的项目时,它会将其添加到所有类别,所以:

list[0]["items"]["msg"] = "Test";

将测试添加到我的所有类别对象,而不仅仅是第一个。谁能告诉我为什么?

4

1 回答 1

1

将测试添加到我的所有类别对象,而不仅仅是第一个。谁能告诉我为什么?

它将msg属性添加到单个 items对象,该对象是列表中所有对象的引用。如果您想要独特的对象,请使用

    list.push({name: category,info: 0, items: {}});

反而。

于 2013-03-22T13:07:47.270 回答