4

これにより、配列itemlist(さらにitemidとアイテムのタイトルを含む)を持つ空のjsonオブジェクトを作成しました。

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

まず、宣言を正しく行いましたか?

次に、titleとitemidは動的に生成されるため、itemlist配列に追加する必要があります。私はこれを試しましたが、1つの配列要素しか保持していません:

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 に答える