Friday, 15 April 2011

javascript - Delete item from Array with nested items -



javascript - Delete item from Array with nested items -

i need delete item array nested items. here's array,

{ "name": "main course", "items": [ { "menuname": "chinese", "id": "12", "menu": [ {"name": "noodles",id="1"}, {"name": "rice",id="2"}, {"name": "xinjiang roast",id="3"} ] }, { "menuname": "indian", "id": "14", "menu": [ {"name": "rice",id="2"}, {"name": "paratha",id="5"}, {"name": "dal fry",id="6"} ] } ] }

i need delete item say, {"name": "rice",id="2"}, first menu (menuname:chinese). please note same item appears in menu (menuname:indian) too, don't want delete. looks mutual approach find indexof item delete , splice it. here's tried,

myarray[0].items.foreach(function (val) { if((val.menuname==="chinese" && val.id==="12")) { val.menu.foreach(function (value) { if(value.name === "rice" && value.id==="2"){ myarray.indexof(value.name); } }) } });

this returns index of -1. doing wrong?

edit:a close vote unclear question (seriously?). code using doesn't homecoming proper index , asked wrong code. due respect, please spend time reading question.

first json string strange.

then can't phone call myarray[0] because don't array:

var k = { "name": "main course", "items": [{ "menuname": "chinese", "id": "12", "menu": [{ "name": "noodles", "id": "1" }, { "name": "rice", "id": "2" }, { "name": "xinjiang roast", "id": "3" }] }, { "menuname": "indian", "id": "14", "menu": [{ "name": "rice", "id": "2" }, { "name": "paratha", "id": "5" }, { "name": "dal fry", "id": "6" }] }] }; k.items.foreach(function (val) { if (val.menuname === "chinese" && val.id === "12") { (var = 0; < val.menu.length; i++) { if (val.menu[i].name === "rice" && val.menu[i].id === "2") { val.menu.splice(i, 1); } } } }); console.log(k);

http://jsfiddle.net/xmsqr/2/

javascript arrays

No comments:

Post a Comment