@Makcimka

Как в JavaScript лаконичнее вернуть значение или undefined в большом объекте с вложенными объектами?

Есть к примеру объект (это для упращения, на самом деле он огромный и приходит в запросе)

const obj = {
    obj1: {
        obj2: {
            key2: 22222222,
            obj3: {
                key3: 321,
                obj4: {
                    key4: 123
                }
            }
        }
    }
}

const value1 = obj.obj1.obj2.obj3.obj4.key4;
const value2 = obj.obj1.obj2.key2;

console.log(value1)
console.log(value2)

Суть в том что obj может придти с obj4, а может нет, если его не будет то будет ошибка типо "Cannot read property 'key4' of undefined". Точно также если не будет его уровнем выше.
Как лаконичнее и правильней вернуть значение либо undefined value1 или value2, по минимуму прибегая проверки цепочки вложенных объектов? Если способы?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Вы можете воспользоваться новинкой - Optional Chaining:
https://developer.mozilla.org/en-US/docs/Web/JavaS...

В любом другом случае вам придется делать проверки вручную:
`if (obj && obj.key1 && obj.key1.key2 ... `
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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