Javascript:在对象数组中查找最大值并返回键

时间:2019-02-13 18:47:12

标签: javascript arrays

我需要编写一条代码,将遍历数据数组,并返回最老的人的名字。

console.log('The oldest person is ${oldestPerson}.')

let data = {
    {
        name: Henry,
        age: 20,
        job: 'store clerk'
    },
    {
        name: Juliet,
        age: 18,
        job: 'student'
    },
    {
        name: Luna,
        age: 47,
        job: 'CEO'
    },

到目前为止,我能够返回包含名称和年龄的单独数组,但是我不确定如何找到最老的年龄并返回最老的人的名字。

let names = data.map((person) => {
    return person.name
});

let ages = data.map((person) => {
    return Math.max(person.age)
});

2 个答案:

答案 0 :(得分:1)

要获得最大年龄,您别无选择,只能遍历整个数组(并获取最旧的数组)。因此,当您遍历数组时,也要获取名称。

这是许多方法中的一种:

const highestAge = 0;
const oldestName = data.reduce((prev,curr) => {
  if(curr.age > highestAgo) {
    highestAge = curr.age;
    return curr.name;
  }
  return prev;
},'');

答案 1 :(得分:1)

使用减少

let data = [{
    name: ' Henry',
    age: 20,
    job: 'store clerk'
  },
  {
    name: 'Juliet',
    age: 18,
    job: 'student'
  },
  {
    name: 'Luna',
    age: 47,
    job: 'CEO'
  }
];
var max = 0;
console.log(data.reduce((acc, a) => {
  if (a.age > max) {
    acc = a.name
    max = a.age;
  }
  return acc;
}, ""))