Как проверить, существует ли объект опора во время разрушения? - PullRequest
1 голос
/ 23 марта 2020

У меня есть это утверждение:

const {
    'xsi:Event': {
      'xsi:eventData': [
        {
          'xsi:call': [
            {
              'xsi:extTrackingId': [extTrackingId],
              'xsi:personality': [personality],
              'xsi:internalReleaseCause': [releaseCause],
            },
          ],
        },
      ],
    },
  } = data

Я анализирую сложный объект из некоторых API. Сверху - реальный пример объекта. В некоторых случаях у меня такая же структура, но без свойства 'xsi:internalReleaseCause', поэтому в этом случае я не могу определить значение для константы releaseCause.

Вопрос в том, как проверить, существует ли 'xsi:internalReleaseCause' проп, на лету?

1 Ответ

0 голосов
/ 23 марта 2020

const data= {
    'Event': {
      'eventData': [
        {
          'call': [
            {
              'extTrackingId': [],
              'personality': [],
              'internalReleaseCause': ['hi'],
            },
          ],
        },
      ],
    },
  }


var { Event: {eventData: [{call:[{extTrackingId:[],personality:[],internalReleaseCause}]}]} } = data;
console.log(internalReleaseCause[0])

мы можем использовать уничтожение этого объекта, чтобы идентифицировать internalReleaseCause на лету, но у вас есть некоторые специальные символы (:) в ключах объектов. Я не уверен, как избежать их, но если есть способ избавиться от них, тогда работает приведенный ниже фрагмент, и вы можете идентифицировать объект напрямую. Надеюсь, это поможет!

...