我有很深的JSON对象的数组,看起来像类似于这样:JavaScript的:如何筛选深JSON对象
var hierarchy = [
{
"title": "category 1",
"children": [
{"title": "subcategory 1",
"children": [
{"id": 1, "title": "name 1"},
{"id": 2, "title": "name 2"},
{"id": 3, "title": "name 3"}
]
},
{"title": "subcategory 2",
"children": [
{"id": 1, "title": "name 4"}
]
}
]
},
{
"title": "category 2",
"children": [etc. - shortened for brevity]
}
];
所以基本上它是一个层次 - 有可以有包含对象子类别的类别有一些ID和名字。我也有相关的最深层次水平(无子对象)的ID的数组和我需要以这样的方式,包含定义的对象只(分)类别保持过滤此组对象。
因此,例如,如果我有含有两个ID的数组:
var IDs = [2, 3];
结果将是:
var hierarchy = [
{
"title": "category 1",
"children": [
{"title": "subcategory 1",
"children": [
{"id": 2, "title": "name 2"},
{"id": 3, "title": "name 3"}
]
}
]
}
];
即整体,除去整个“类别2”对象,整个'子类别2'被删除,ID为'1'的对象被删除。
问题是这些对象的深度是可变的和未知的 - 一些对象没有孩子,有些孩子也有孩子等,任何子类别本身都可以有一个子类别,我基本上需要找到对象没有儿童定义了身份证,并且保留了每个人的全部路径。
谢谢。
我强烈推荐这个[下划线](http://underscorejs.org/)(或Lodash) - 这会让你的生活变得更加简单 – Bojangles
@Bojangles - 下划线很棒,但具体问题到底如何帮助我?我可能会错过一些东西,但我没有看到任何下划线方法。谢谢。 – keepsea
对不起,我在我的手机上,并没有正确地阅读这个问题。我看到很多复杂的对象迭代的瞬间想到下划线 – Bojangles