Помогите разобрать решение

Рейтинг: 0Ответов: 0Опубликовано: 25.01.2023

Дан список информации о людях.

Необходимо вернуть массив, содержащий самого старшего человека в списке. Если несколько людей имеют одинаковый наибольший возраст, то нужно вернуть массив, содержащий их всех.

Возраст хранится в поле age.

Данные на входе:

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 result = getMostSenior(data);

Данные на выходе:

console.log(result);
// [
//     { firstName: 'Gabriel', lastName: 'X.', country: 'Monaco', continent: 'Europe', age: 49, language: 'PHP' },
//     { firstName: 'Sou', lastName: 'B.', country: 'Japan', continent: 'Asia', age: 49, language: 'PHP' },
// ]

Вот решение:

const getMostSenior = humans => {
    const max = Math.max(...humans.map(item => item.age));
    let res = humans.filter(item => max && item.age == max);
    return res;
};

В первой строчке (где объявляется переменная max) я не могу до конца понять, зачем используется спред? Во второй строке, при объявлении переменной res используется метод filter, в скобках которого я тоже не имею полной картины

Ответы

Ответов пока нет.