Самый старший user

Есть массив users. как найти самых старших user? Их может быть несколько с одинаковым возрастом. на примере

const data =[
    { firstName: 'Gabriel', lastName: 'X.', country: 'Monaco', continent: 'Europe', age: 49, language: 'PHP' },
    { firstName: 'Odval', lastName: 'F.', country: 'Mongolia', continent: 'Asia', age: 38, language: 'Python' },
    { firstName: 'Emilija', lastName: 'S.', country: 'Lithuania', continent: 'Europe', age: 19, language: 'Python' },
    { firstName: 'Sou', lastName: 'B.', country: 'Japan', continent: 'Asia', age: 49, language: 'PHP' },
]

Ответы (3 шт):

Автор решения: fortavey
const newData = data.sort( (a,b) => b.age - a.age ).filter(el => el.age === data[0].age);
console.log(newData);
→ Ссылка
Автор решения: renich

Я бы так сделал.

const data = [{
    firstName: 'Gabriel',
    lastName: 'X.',
    country: 'Monaco',
    continent: 'Europe',
    age: 49,
    language: 'PHP'
  },
  {
    firstName: 'Odval',
    lastName: 'F.',
    country: 'Mongolia',
    continent: 'Asia',
    age: 38,
    language: 'Python'
  },
  {
    firstName: 'Emilija',
    lastName: 'S.',
    country: 'Lithuania',
    continent: 'Europe',
    age: 19,
    language: 'Python'
  },
  {
    firstName: 'Sou',
    lastName: 'B.',
    country: 'Japan',
    continent: 'Asia',
    age: 49,
    language: 'PHP'
  }
];
const max = Math.max(...data.map(item => item.age)) || null;
let res = data.filter(item => max && item.age == max);
console.log(res);

→ Ссылка
Автор решения: Grundy
  1. Нужно пройтись по всему массиву
  2. если текущий элемент больше сохраненных
    1. сбросить сохраненные и записать новый максимальный
  3. если равен сохраненному - добавить в массив
  4. если меньше - перейти к следующему

const data = [{
    firstName: 'Gabriel',
    lastName: 'X.',
    country: 'Monaco',
    continent: 'Europe',
    age: 49,
    language: 'PHP'
  },
  {
    firstName: 'Odval',
    lastName: 'F.',
    country: 'Mongolia',
    continent: 'Asia',
    age: 38,
    language: 'Python'
  },
  {
    firstName: 'Emilija',
    lastName: 'S.',
    country: 'Lithuania',
    continent: 'Europe',
    age: 19,
    language: 'Python'
  },
  {
    firstName: 'Sou',
    lastName: 'B.',
    country: 'Japan',
    continent: 'Asia',
    age: 49,
    language: 'PHP'
  },
];

console.log(data.reduce((acc, cur) => {
  if (acc[0] == undefined || cur > acc[0].age) return [cur];
  if (cur.age == acc[0].age) acc.push(cur);
  return acc;
}, []));

→ Ссылка