нулевая проверка массива с использованием разрыва вопросительного знака - PullRequest
1 голос
/ 05 августа 2020

У меня есть этот массив объектов

const a = {a:[{b:[{prop: 10}]}]}

для доступа к значению 10 Я делаю

a.a[0].b[0].prop // 10

Я использую это запасной вариант, убедитесь, что что-то не сломалось, но это не сработало?

a? .a [0] ?. b [0] ?. prop

, я могу использовать что-то вроде loda sh получает или проверяет старым методом, но как использовать синтаксис вопросительного знака?

Ответы [ 3 ]

1 голос
/ 05 августа 2020

Это должно быть надежным:

const a = {
  a: [{
    b: [{
      prop: 10
    }]
  }]
};

console.log(a?.a?.[0]?.b?.[0]?.prop);
1 голос
/ 05 августа 2020

Это должно работать

a?.a?.[0]?.b?.[0]?.prop

В качестве альтернативы вы можете использовать оператор ||, чтобы получить желаемое значение.

(((a || {}).a || [{}])[0].b || [{}])[0].prop

1 голос
/ 05 августа 2020

Необязательное объединение в цепочку следует записать следующим образом:

a?.[0]?.b?.[0].prop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...