搜索嵌套的javascript对象,获取祖先数组 [英] searching a nested javascript object, getting an array of ancestors
本文介绍了搜索嵌套的javascript对象,获取祖先数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的嵌套数组:
I have a nested array like this:
array = [
{
"id": "67",
"sub": [
{
"id": "663",
},
{
"id": "435",
}
]
},
{
"id": "546",
"sub": [
{
"id": "23",
"sub": [
{
"id": "4",
}
]
},
{
"id": "71"
}
]
}
]
我需要通过其id找到1个嵌套对象并获取其所有父对象,从而生成一组id。
I need to find 1 nested object by its id and get all its parents, producing an array of ids.
find.array("71")
=> ["546", "71"]
find.array("4")
=> ["546", "23", "4"]
最干净的方法是什么?谢谢。
What's the cleanest way to do this? Thanks.
推荐答案
递归:
function find(array, id) {
if (typeof array != 'undefined') {
for (var i = 0; i < array.length; i++) {
if (array[i].id == id) return [id];
var a = find(array[i].sub, id);
if (a != null) {
a.unshift(array[i].id);
return a;
}
}
}
return null;
}
用法:
var result = find(array, 4);
演示: http://jsfiddle.net/Guffa/VBJqf/
这篇关于搜索嵌套的javascript对象,获取祖先数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文