@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))
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((max, n) => max?.length > n.text.length ? max : n.text, null)

или

arr.map(n => n.text).sort((a, b) => b.length - a.length)[0]

или

arr.reduce((acc, n) => (acc[n.text.length] = n.text, acc), []).pop()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы