刪除值的列表我具有如遞歸從對象
ids = [6,9]
ID的列表和一個對象,它是作爲
data = {
"child": [{
"fruit": "apple",
"id": 1
},
{
"fruit": "mango",
"id": 2,
"child": [{
"name": "js",
"id": 4
}, {
"name": "jsk",
"id": 6
}]
},
{
"fruit": "banana",
"id": 9
}
]
}
我必須遍歷數據,以找到對象的數組在ids.Here名單與現有ID的任何對象我要刪除
{"name":"jsk", "id": 6}
和
{"fruit":"banana","id":9}
爲了實現這一點,我已經寫了下面的代碼
deleteObj = (data, ids) => {
data.child.forEach((key, index) => {
if(key && ids.indexOf(child.id) > -1){
console.log("inside match before", key);
key.splice(index, 1);
console.log("inside match after: ", key);
}
if(key.child) {
deleteObj(key, ids);
}
})
};
但在獲得第一後,此功能匹配它只是return.Deliting只有第一個匹配的ID。 普林只有inside match after:9
無法找到任何錯誤
是什麼'findBookmarkDeletedIds' – Dij
你有deleteObj內的兩個問題。在第一個if語句中,你檢查'child.id',但你應該檢查'key.id'。其次,你的拼接調用應該在data.child而不是'key'上調用。 – vox