Javascript 查找最小值和最大值键嵌套对象

Javascript 查找最小值和最大值键嵌套对象,javascript,reduce,Javascript,Reduce,我有一个具有多个嵌套的对象。每个对象都有自己的键、iq、名称和总数。例如,必须找到iq的最大值和最小值。关键子项可能是,也可能不是 let infoList= { name: Jone, iq: 130, children: [{ name: Joy, iq: 121, children: [{ name: Ross, iq: 110, children

我有一个具有多个嵌套的对象。每个对象都有自己的键、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: [{ 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或其他