我有这种类型的对象:
[
{
"fieldID": 10,
"isGroup": true,
"itemDisplayName": "Cliente",
"items": [
{
"fieldID": 1,
"isGroup": false,
"itemDisplayName": "Código cliente",
"items": [],
"__deleteConditions": false
},
{
"fieldID": 2,
"isGroup": false,
"itemDisplayName": "Apellidos",
"items": [],
"__deleteConditions": true
}
]
},
{
"fieldID": 20,
"isGroup": true,
"itemDisplayName": "Aseguradora",
"items": [
{
"fieldID": 3,
"isGroup": false,
"itemDisplayName": "Código",
"items": [
{
"fieldID": 4,
"isGroup": false,
"itemDisplayName": "Id",
"items": [
{
"fieldID": 5,
"isGroup": false,
"itemDisplayName": "Numerical",
"items": [],
"__deleteConditions": true
},
{
"fieldID": 7,
"isGroup": false,
"itemDisplayName": "Numerical2",
"items": [],
"__deleteConditions": false
}
],
"__deleteConditions": false
},
{
"fieldID": 6,
"isGroup": false,
"itemDisplayName": "Apellidos",
"items": [],
"__deleteConditions": true
}
],
"__deleteConditions": false
}
]
}
]
我想要遍历所有的对象数组(包括子对象)并删除所有具有属性的对象:“__删除条件”:真
也就是说,我希望返回一个数组,其中包含“__deleteConditions”为false的所有对象。
我需要帮助,因为我一直无法递归地解决这个问题。非常感谢您的帮助。〈3
3条答案
按热度按时间agxfikkp1#
您可以尝试使用组合数组过滤器和Map。请查看以下内容。
希望这能帮上忙
0x6upsns2#
将其构建在一个泛型函数之上似乎很有用,该函数将根据任意 predicate 过滤您的
item
-children对象,然后通过向其传递一个检查__deleteCondition
的函数来编写您的版本。我们可以这样做:
deepFilter
是我们的通用、可重用函数,能够在我们系统的其他部分或我们可能创建的其他系统上使用。removeDeleteCondition
是通过向deepFilter
传递 predicate 函数的简单技术创建的。ldxq2e6h3#
我认为您只需要使用delete条件删除所有项,然后递归处理剩余项