0

Как правильно проверять вложенные свойства объектов на наличие, которых пока нет?

let obj = {};

if (obj.prop.subprop) { console.log('ok'); }

obj = { prop : "one", prop : "two", prop : { subprop : "subone" } }

  • Только вот с условием "правильно", получается какая-то муть/неоднозначность: вроде бы не существует каких-либо каноничных правил выполнения подобных проверок. Чем обусловлена такая формулировка вoпроса? (Какие именно критерии у правильности, или неправильности? Есть ли пример неправильного, с уточнением что именно не устраивает в нем?) – yar85 Aug 20 '21 at 06:06
  • Вот еще (напоминаю о старом вoпросе): https://ru.stackoverflow.com/q/814308/288409 - там другие способы проверок: либо OR-чейнинг, либо обработка ошибки в try..catch. Все это тоже вполне допустимо/применимо. – yar85 Aug 20 '21 at 06:19

1 Answers1

2

Optional chaining

let obj = {};

console.log(obj.prop?.subprop); if (obj.prop?.subprop) { console.log('ok'); } else { console.log('not ok'); }

obj = { prop: { subprop: "subone" }, }

console.log(obj.prop?.subprop); if (obj.prop?.subprop) { console.log('ok'); } else { console.log('not ok'); }