我有一个结构如下的JSON文件:
"FAMILY": {
"1": {
"ANNA": {
"name": "ANNA X",
"alive": true,
"children": {
"MAX": {
"name": "MAX X",
"alive": false,
"children": {}
},
"TOM": {
"name": "TOM X",
"children": {
"TOM JR": {
"name": "MAX X",
"alive": true,
"children": {...}
}
}
}
}
}
},
"2":...
}
我想找到活着的最后一个孩子(儿童数据)。我们不知道家庭成员的数量,所以我不能为每个人做一个循环。 我怎样才能做到这一点?循环所有安娜的家人,找到最后一个孩子。
感谢。
答案 0 :(得分:0)
您需要递归来迭代每个节点并计算水平深度。您还需要一个变量来保存最深层次的节点。递归结束后,返回变量。寻找递归和冒泡排序。
答案 1 :(得分:0)
我希望这应该是有帮助的,在这里我认为你的对象在obj
变量
var last_member =null;
function getLastChildren(obj)
{
for(i in obj)
{
if(typeof obj[i].children !== "undefined")
{
getLastChildren(obj[i].children);
}
else if(typeof obj[i].alive !== "undefined" && obj[i].alive)
{
last_member=obj[i];
}
}
}
getLastChildren(obj.FAMILY);
console.log(last_member);
获取最深层次成员的另一个解决方案
var last_member =null;
var deep_level=0;
function getLastChildren(obj, current_level)
{
for(i in obj)
{
if(typeof obj[i].children !== "undefined")
{
getLastChildren(obj[i].children, current_level+1);
}
else if(typeof obj[i].alive !== "undefined" && obj[i].alive current_level>=deep_level)
{
last_member=obj[i];
deep_level=current_level;
}
}
}
getLastChildren(obj.FAMILY,1);
console.log(last_member);
由于