Javascript 查找最小值和最大值键嵌套对象
我有一个具有多个嵌套的对象。每个对象都有自己的键、iq、名称和总数。例如,必须找到iq的最大值和最小值。关键子项可能是,也可能不是Javascript 查找最小值和最大值键嵌套对象,javascript,reduce,Javascript,Reduce,我有一个具有多个嵌套的对象。每个对象都有自己的键、iq、名称和总数。例如,必须找到iq的最大值和最小值。关键子项可能是,也可能不是 let infoList= { name: Jone, iq: 130, children: [{ name: Joy, iq: 121, children: [{ name: Ross, iq: 110, children
let infoList= {
name: Jone,
iq: 130,
children: [{
name: Joy,
iq: 121,
children: [{
name: Ross,
iq: 110,
children: [{
....
}]
}]
}]
}
这里有一个递归解决方案。注意,我将名称更改为字符串
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
这里有一个递归解决方案。注意,我将名称更改为字符串
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
这与上一个有什么不同:key children是一个对象数组,因为获取结果的决定不起作用。你能帮我将代码重写为一个对象数组吗?这看起来像一个json对象。那么在哪个patfor中,你需要像javascript一样的,jquery和angular或othersHow与上一个不同:关键子对象是一个对象数组,因为获取结果的决定不起作用。您能帮助将代码重写为一个对象数组吗?这看起来像一个json对象。那么,您需要使用哪种patfor,比如javascript、jquery和angular或其他