我有一个带有多个嵌套的对象。每个对象都有自己的键,即iq,名称,total。例如,必须找到iq的最大值和最小值。关键子对象可能是,也可能不是。
let infoList= {
name: Jone,
iq: 130,
children: [{
name: Joy,
iq: 121,
children: [{
name: Ross,
iq: 110,
children: [{
....
}]
}]
}]
}
答案 0 :(得分:2)
这是一个递归解决方案。请注意,我将名称更改为字符串。
let infoList= {
name: 'Jone',
iq: 130,
children: [{
name: 'Joy',
iq: 121,
children: [{
name: 'Ross',
iq: 110,
children: [{ name: 'Joe', iq: 20 }]
}]
}]
}
function ancestorIQs(person) {
let arr = [person.iq];
if (!person.children) return arr;
return person.children.reduce(function (iqs, child) {
return iqs.concat(ancestorIQs(child));
}, arr);
}
let result = ancestorIQs(infoList);
console.log(Math.min(...result)); // 20
console.log(Math.max(...result)); // 130