@ivan_kholodov

Как найти наибольшее значение по полю в объекте и вернуть его?

Всем привет!
Имеются подобные объекты:
[
 {name: 'Олег', age: 30, text: 'Привет, Олег'},
 {name: 'Николай', age: 40, text: 'Привет, Николай! Как дела'},
 {name: 'Иван', age: 24, text: 'Привет, Иван! Что нового и как ты поживаешь?'}
]


Мне нужно найти в каком объекте самый длинный text, то есть сравнить объекты массива и вернуть его?
можно сделать типо того, но в таком случае я верну цифру, а мне нужен именно текст:
const result = Math.max(...items.map(i => i.text.length))
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
function max(data, key = n => n) {
  const getVal = key instanceof Function ? key : n => n[key];

  return Array.prototype.reduce.call(data, (max, n) => {
    const val = getVal(n);
    return max[0] > val ? max : [ val, n ];
  }, [ -Infinity, undefined ])[1];
}


const { text } = max(arr, n => n.text.length);
const oldest = max(arr, 'age');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект