Обработка свойства неопределенных объектов с помощью lodash - PullRequest
0 голосов
/ 04 апреля 2020

var obj = { property1 : { subprop : true }, property2 : { subprop : false }, property4 : { subprop : true } }

Над объектом находится объект. Если я запускаю код if(obj.property3.subprop){ // code }

, то ошибка появляется как cannot read property3 of undefined

. Я могу обработать вышеуказанную ошибку используя javascript, но если мне нужно обработать это через loda sh, то это встроенная функция в loda sh для такого сценария

1 Ответ

1 голос
/ 04 апреля 2020

Вы можете использовать loda sh s _.get() для запроса пути, возможно, с отсутствующими частями, без получения ошибки. Вы также можете использовать третий параметр для возврата значения по умолчанию.

const obj = {"property1":{"subprop":true},"property2":{"subprop":false},"property4":{"subprop":true}}

if (_.get(obj, 'obj.property3.subprop')) {
  // code
} else {
  console.log('something else')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

Еще одна возможность - это новая опциональная цепочка, которая в настоящее время работает во всех зеленых браузерах, кроме Safari:

const obj = {"property1":{"subprop":true},"property2":{"subprop":false},"property4":{"subprop":true}}

if (obj?.property3?.subprop) {
  // code
} else {
  console.log('something else')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
...