javascript - 如何识别嵌套数组中的对象并根据JS forLoop中的条件删除索引
问题描述
我有这个嵌套对象数组,其中唯一标识符是 UUID
"statement":[
{
"boolean":"AND",
"statement":[
{
"name":"long",
"table":"testOne",
"uuid":"cbb7e16b-42fc-4914-8119-cc51434ecb35",
},
{
"boolean":"AND",
"statement":[
{
"name":"float",
"table":"testOne",
"uuid":"87cac127-dda3-4435-ad1f-ae7e1a718f64",
}
]
}
]
}
]
我还有一个对象
{
"name":"float",
"table":"testOne",
"uuid":"87cac127-dda3-4435-ad1f-ae7e1a718f64",
}
我可以在语句的嵌套对象内部进行跟踪并根据 UUID 删除 JSON 中的特定对象吗?
解决方案
您可以在下面执行此操作,这将通过递归删除所需的对象。
mainFunction(){
let jsonData = {
"statement": [
{
"boolean": "AND",
"statement": [
{
"name": "long",
"table": "testOne",
"uuid": "cbb7e16b-42fc-4914-8119-cc51434ecb35",
},
{
"boolean": "AND",
"statement": [
{
"name": "float",
"table": "testOne",
"uuid": "87cac127-dda3-4435-ad1f-ae7e1a718f64",
}
]
}
]
}
]
};
let searchObj = {
"name": "float",
"table": "testOne",
"uuid": "87cac127-dda3-4435-ad1f-ae7e1a718f64",
};
recursion(jsonData['statement'], searchObj);
}
recursion(data_list, obj){
data_list.map(function (item, index) {
if(!item.hasOwnProperty('statement')){
if(item['uuid'] == obj['uuid']) {
data_list.splice(index, 1);
return data_list
}
}else{
recursion(item['statement'], obj)
}
});
return data_list
},
推荐阅读
- r - 如何在 Rstudio 中更新 mlr3 库
- node.js - Angular 无法从 nestjs 读取 http 响应标头
- pine-script - 会话开始时间“D”已修改
- docker - 如何将当前文件夹作为上下文传递给 docker-compose.yml 然后 Dockerfile?
- python - 使用 Pytorch 将列表作为特征并将列表作为目标/标签?
- python - 在python中循环函数并导出文件
- keycloak - 为什么 Keycloak admin-cli 客户端会收到 403 Forbidden 以列出组?
- javascript - 在邮递员上使用客户端和客户端密码获取 vimeo 访问令牌
- c# - 等待C#中的按键
- javascript - javascript obj.value 稍后在函数中消失