我有像这样的维度数组
{
"items": [
{
"id": "file",
"value": "File",
"childs": [
{
"value": "New",
"status": 1
},
{
"value": "New",
"status": 2
},
{
"value": "New",
"status": 1
}
]
},
{
"id": "file",
"value": "File",
"childs": [
{
"value": "New",
"status": 1
},
{
"value": "New",
"status": 2
},
{
"value": "New",
"status": 1
}
]
}
]
}
如何通过childs.status
过滤项目和自己的孩子答案 0 :(得分:1)
您必须使用filter方法根据特定测试过滤您的项目数组,在您找到状态3的情况下,这是一个有效的示例:
var json = {
"items": [
{
"id": "file",
"value": "File",
"childs": [
{
"value": "New",
"status": 1
},
{
"value": "New",
"status": 2
},
{
"value": "New",
"status": 1
}
]
},
{
"id": "file",
"value": "File",
"childs": [
{
"value": "New",
"status": 1
},
{
"value": "New",
"status": 3
},
{
"value": "New",
"status": 1
}
]
}
]
};
var result = json.items.filter(function(item) {
item.childs = item.childs.filter( function (child) {
return child.status === 3;
});
return item.childs.length > 0;
});
console.log({items: result});

答案 1 :(得分:-1)
我已经设置了一个repl,其中我已经抽出了过滤你的json的方法。你可以find it here;随意玩弄它。
@ younel的回答改变了原始数组,我还用他的方法更新了我的repl,以显示原始json是如何变异的。
items
item
中的孩子符合过滤条件,则保留该项目和已过滤的子项