删除值的列表我具有如递归从对象
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