4

我通过以下方式创建了一个空的 json 对象,该对象具有一个数组 itemlist(其中还包含 itemid 和 item 的标题):

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

首先,我是否正确完成了声明?

其次,标题和 itemid 是动态生成的,所以我需要将它们添加到 itemlist 数组中。我试过了,但它只保留一个数组元素:

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

如果我有一个空的项目列表数组,如何添加多个元素(不是一次全部)?

此外,我还需要根据元素的标题删除特定的数组元素。怎么可能呢?我认为可以使用拼接和删除功能,但是我怎样才能找到那个元素的索引呢?

4

1 回答 1

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会弄乱数组索引

于 2012-06-21T06:19:39.057 回答