Задать вопрос
@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))
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
function max(data, key = n => n) {
  const getVal = key instanceof Function ? key : n => n[key];
  let result = null;

  for (const n of data) {
    const val = getVal(n);
    result = result?.[1] >= val ? result : [ n, val ];
  }

  return result?.[0];
}

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

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

Похожие вопросы