중첩 항목이있는 배열에서 항목을 삭제해야합니다. 첫 번째 메뉴에서, (MenuName 하 : 중국어) : 여기 내가 말할 항목을 삭제해야 배열,중첩 항목이있는 배열에서 항목 삭제
{
"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"}
]
}
]
}
, { "쌀", ID = "2", "이름"}입니다. 동일한 항목이 다른 메뉴 (menuname : Indian)에도 나타나기 때문에 삭제하고 싶지는 않습니다. 일반적인 접근 방식은 indexOf 항목을 찾아 삭제하고 연결하는 것입니다. 다음은 내가 시도한 것입니다.
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);
}
})
}
});
항상 -1의 인덱스를 반환합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
편집 : 불명확 한 질문에 대한 최종 표결 (진지하게?). 사용하고있는 코드가 적절한 인덱스를 반환하지 않고 코드에 무엇이 잘못되었는지 질문했습니다. 모든 점을 고려하여 질문을 읽으십시오.
사용 스플 라이스 : 당신이 배열을하지 않기 때문에
그럼 당신은
myArray[0]
를 호출 할 수 없습니다 http://www.tutorialspoint.com/ javascript/array_splice.htm –'id = "3"'JSON 형식입니까? – Fractaliste
@Fractaliste,이 배열은 객체에서 JSON.stringify를 실행 한 후 가져옵니다. – redGREENblue