@Quambaras

Как в массиве с массивами найти объект у которого значение больше чем у других объектов?

const arr = [
   [
      {name: 'Name1', age: 3},
      {name: 'Name1', age: 5}
   ],
    [
      {name: 'Name1', age: 1},
      {name: 'Name1', age: 7}
   ]
   [
     {name: 'Name1', age: 2},
     {name: 'Name1', age: 10}
   ]
]


как из такого массива найти самое большое значение у поля age?
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
В заголовке вопроса:

найти объект

В тексте:

найти самое большое значение

Ну и как это понимать? Сами-то в курсе, чего вам надо?

Первое:

const obj = arr.flat().reduce((max, n) => max?.age > n.age ? max : n, null);

Второе:

const val = Math.max(...arr.flat().map(n => n.age));

Кстати, а что если максимум представлен в нескольких экземплярах? Можно получить все такие объекты:

const objs = arr.reduce((acc, n) => (
  n.forEach(m => (
    m.age > acc[0] && (acc = [ m.age, [] ]),
    m.age === acc[0] && acc[1].push(m)
  )),
  acc
), [ -Infinity, [] ])[1];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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