从复杂的JavaScript对象中删除对象的最佳方法是什么

从复杂的JavaScript对象中删除对象的最佳方法是什么,javascript,jquery,underscore.js,lodash,Javascript,Jquery,Underscore.js,Lodash,我有一个JavaScript对象,如下所示: { "filters": [ { "name": "Test", "items": [ { "id": 1207700620, "checked": false }, {

我有一个JavaScript对象,如下所示:

{
    "filters": [
        {
            "name": "Test",
            "items": [
                {
                    "id": 1207700620,
                    "checked": false
                },
                {
                    "id": 1207825584,
                    "checked": false
                },
                {
                    "id": 1207969166,
                    "checked": true
                }
            ]
        },
        {
            "name": "Empty",
            "items": []
        },
        {
            "name": "ThirdList",
            "items": [
                {
                    "id": "1207828314",
                    "checked": true
                },
                {
                    "id": "1236723086",
                    "checked": false
                },
                {
                    "id": "1208005603",
                    "checked": true
                }
            ]
        }
    ]
}
我的
对象
有一个名为
过滤器
的数组。此数组包含多个对象。在每个对象中都有一个按名称
项目
排列的数组。对于此
items
数组中的每个元素,我需要检查
checked
属性&
如果为false,我需要删除该记录(items数组中的该项)

我需要确保IE 8的兼容性

我可以在过滤器数组中使用for循环,在这个for循环中,我可以使用另一个for循环来遍历items数组。我不想这样


是否有更聪明的方法通过lodash、jquery或任何其他JavaScript库来实现这一点???

您可以尝试以下方法的组合:

检查下面的示例

var obj={
“过滤器”:[
{
“名称”:“测试”,
“项目”:[
{
“id”:1207700620,
“选中”:false
},
{
“id”:1207825584,
“选中”:false
},
{
“id”:1207969166,
“已检查”:真
}
]
},
{
“名称”:“空”,
“项目”:[]
},
{
“姓名”:“第三名”,
“项目”:[
{
“id”:“1207828314”,
“已检查”:真
},
{
“id”:“1236723086”,
“选中”:false
},
{
“id”:“1208005603”,
“已检查”:真
}
]
}
]
};
对象过滤器forEach(函数(过滤器){
filter.items=filter.items.filter(函数(el){
返回el.checked;
});
});

警报(JSON.stringify(obj,null,4))“我可以在过滤器数组中使用for循环,在这个for循环中,我可以使用另一个for循环来检查items数组。我不想使用这个方法”-为什么?@Andreas:我只想用更少的代码和更聪明的方法。我一直知道我可以用2个for循环。
obj.filters.forEach(function(filter) {
    filter.items = filter.items.filter(function(el) {
        return el.checked;
    });
});