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.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 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));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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