Js:添加嵌套的对象文字项 - 无法弄明白

时间:2013-01-29 23:51:52

标签: jquery object nested extend literals

这是我的代码:

Cart = {
    items: {
        id1: { cost: 55 },
        id3: { cost: 20 },
        id2: { cost: 15 }
    },

    blah blah blah
}

现在我想用动态键和放大器为Cart.items添加值。价值,我被卡住了。

var id = 5;
Cart.items["id"+id].cost = 20;

我也在使用jquery库,所以我不确定.extend是否更适合这个。

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

Cart.items["id"+id]可能不存在。首先添加此检查:

if (!Cart.items.hasOwnProperty("id" + id) {
   Cart.items["id" + id] = {};
}

然后,您可以在该级别随意添加键/值。

答案 1 :(得分:0)

应该是:

Cart.items["id"+id] = {cost: 20};

这是因为您必须先声明一个新对象。此时Cart.items["id"+id]仍然未定义。