Javascript 如何识别嵌套数组中的对象并根据JS forLoop中的条件删除索引
我有一个嵌套对象数组,其中唯一标识符是UUIDJavascript 如何识别嵌套数组中的对象并根据JS forLoop中的条件删除索引,javascript,arrays,for-loop,lodash,Javascript,Arrays,For Loop,Lodash,我有一个嵌套对象数组,其中唯一标识符是UUID "statement":[ { "boolean":"AND", "statement":[ { "name":"long", "table":"testOne", "uuid":"cbb7e16b-42fc-4914-8119-cc51434ecb35", },
"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
},
以下代码将帮助您获得所需的结果
let 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 removeObj = {
"name":"float",
"table":"testOne",
"uuid":"87cac127-dda3-4435-ad1f-ae7e1a718f64",
}
function checkUUID(arr) {
for(let i=0; i < arr.length; i++) {
if (arr[i].hasOwnProperty('uuid')) {
if(removeObj.uuid === arr[i].uuid) {
delete arr[i];
} else {
console.log('value not equal');
}
} else {
checkUUID(arr[i].statement)
}
}
};
checkUUID(statement[0].statement);
let语句=[{
“布尔”:“和”,
“声明”:[
{
“名称”:“长”,
“表”:“testOne”,
“uuid”:“cbb7e16b-42fc-4914-8119-cc51434ecb35”,
},
{
“布尔”:“和”,
“声明”:[{
“名称”:“浮动”,
“表”:“testOne”,
“uuid”:“87cac127-dda3-4435-ad1f-ae7e1a718f64”,
}]
}
]}];
让removeObj={
“名称”:“浮动”,
“表”:“testOne”,
“uuid”:“87cac127-dda3-4435-ad1f-ae7e1a718f64”,
}
函数checkUUID(arr){
for(设i=0;i
那么您想从json中删除下面提到的对象吗?您所说的特定索引到底是什么意思?是的。我想在嵌套的json中进行跟踪,并基于UUID删除该对象。是否对定义的json结构进行了必要的编辑,或者它可以更嵌套?json可以嵌套到更多级别。