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