使用push创建动态对象

时间:2015-03-25 06:53:47

标签: javascript

我的要求如下:

Item1-  Orange color  3 pic  
        Pink   color  5 pic  
Item2-  White color   9 pi  
        Black color   8 pic    

我想创建一个对象并动态推送Items。 我试过

var data = {items: [
    {id: "1", Color: "Orange", Qty: "3"},
    {id: "2", Color: "Yellow", Qty: "2"},     
]};

但我无法添加项目的多种颜色。

2 个答案:

答案 0 :(得分:0)

使用此:

var data = {item1: [],item2: []};

//pushing to item1
data.item1.push({id: "1", Color: "Orange", Qty: "3"});
data.item1.push({id: "2", Color: "Yellow", Qty: "2"});

//pushing to item2
data.item2.push({id: "1", Color: "Orange", Qty: "3"});
data.item2.push({id: "2", Color: "Yellow", Qty: "2"});

答案 1 :(得分:0)

如果我理解你的意思,你有几个项目,每个项目有几个品种。在这种情况下,这是正确的结构:

var items = [
    {
        id: 1,
        variety: [
            {color: 'orange', qty: 3},
            {color: 'pink',   qty: 5}
        ]
    },
    {
        id: 2,
        variety: [
            {color: 'white', qty: 9},
            {color: 'black', qty: 8}
        ]
    }
];

要推送数据,您必须以这种方式使用push()原型的Array方法:

// Pushing items
items.push({
    id: 3,
    variety: [
        {color: 'red', qty: 1}
    ]
});
// Pushing varieties
items[2].variety.push({color: 'green', qty: 6});

之前操作的结果以这种方式设置items

var items = [
    {
        id: 1,
        variety: [
            {color: 'orange', qty: 3},
            {color: 'pink',   qty: 5}
        ]
    },
    {
        id: 2,
        variety: [
            {color: 'white', qty: 9},
            {color: 'black', qty: 8}
        ]
    },
    {
        id: 3,
        variety: [
            {color: 'red',   qty: 1},
            {color: 'green', qty: 6}
        ]
    }
];