2012-06-21 39 views
4

我已經創建具有陣列ITEMLIST(其中,進一步含有的itemid和標題的項目)的空JSON對象:將元素添加到空JSON數組和由該去除它們

var jsonObj = {}; 
jsonObj.itemlist=[]; 
jsonObj.itemlist.push({}); 

首先,我做了的聲明正確嗎?

其次,title和itemid是動態生成的,所以我需要將它們添加到itemlist數組中。我試過,但它使只有一個數組元素:

jsonObj.itemlist['title']=gentitle; 
jsonObj.itemlist['itemid']=genitemid; 

如何添加多個元素(而不是一次),如果我有的項目列表的一個空數組?

此外,我還需要刪除基於元素標題的特定數組元素。如何做到這一點?我認爲拼接和刪除功能可以用於此,但我怎麼能找到該元素的索引?

回答

6

既然你已經推了空對象到數組,你需要修改的對象:

jsonObj.itemlist[0]['title']=gentitle; 
jsonObj.itemlist[0]['itemid']=genitemid; 

要添加更多的對象,你可以做同樣的事情:推動在一個空的對象,然後修改目的。或者,您可以創建一個對象,對其進行修改,然後將其推入列表中。

var new_obj = {'title':gentitle, 'itemid':genitemid}; 
jsonObj.itemlist.push(new_obj); 

要刪除某些屬性值的對象:

for (var i = jsonObj.itemlist.length-1; i >= 0; i--) 
    if(jsonObj.itemlist[i]['title'] == "to-be-removed") 
     jsonObj.itemlist.splice(i,1); 

請注意,您需要留後路,否則splice會搞亂數組索引

+0

的陣列應該有更多的元素在裏面。而且,元素的添加應該是自動的,就像在線購物車中一樣。僅添加一個元素不會解決我的目的。如果要添加多個元素,我應該怎麼做。 –

+1

@VatsalJuneja看到我的更新 – xvatar

+0

推動作品......謝謝! :)你還可以告訴我如何通過匹配數組元素的標題與待移除元素的標題來移除數組元素? –