heretic_man
@heretic_man
frontender который хочет знать все

Как в этом объекте найти большее число в значениях?

Объект:
var obj = [{
	"one": {level: 100},
	"two": null,
	"three": {level: 500}
}]


Мне нужно найти самое большое число в свойствах объекта "obj[0].one.level и obj[0].two.level и obj[0].three.level", если есть св. "level". В противном случаи игнорировать.

Я пытался вот так:
Math.max(obj[0].one.level, obj[0].two.level, obj[0].three.level);

Но получаю ошибку: Cannot read property 'level' of null, потому-что у obj[0].two значение null.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
0xD34F
@0xD34F
const max = Object.values(obj[0]).reduce((max, n) => Math.max(max, n ? n.level : max), -Infinity);

или
const max = Math.max(...Object.values(obj[0]).map(n => n ? n.level : -Infinity));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Digital Sharks Казань
от 60 000 до 65 000 руб.
CS Money Санкт-Петербург
от 120 000 до 150 000 руб.