JS / ES6: неопределенная проверка на разрушение динамической переменной c - PullRequest
0 голосов
/ 03 февраля 2020

Я использую некоторую деструктуризацию, подобную этой, на основе данных Dynami c:

const {
        groupSku,
        parentGroupSKU,
        orderOriginationId,
        sku,
        quantity,
        partialShip,
        categoryID,
        masterCategoryID,
        siteId,
        assortmentId,
        servicing,
        servicing: { itemServiceTypeID },
        servicing: { style },
        servicing: { text },
        servicing: { serviceQuantity }
    } = item;

Следующее может быть неопределенным -

обслуживание, обслуживание: {itemServiceTypeID}, обслуживание: {style}, обслуживание: {текст}, обслуживание: {serviceQuantity}

Как проверить вышеприведенное значение undefined при назначении на const? Я хотел проверить, если «обслуживание» не определено, тогда остальные из обслуживаемых должны быть опущены.

Получал y.servicing is undefined в консоли, если элемент не имеет servicing.

1 Ответ

1 голос
/ 03 февраля 2020

Попробуйте это:

let item = {
  masterCategoryID: '<masterCategoryID>',
  assortmentId: '<assortmentId>',
  siteId: '<siteId>',
  someDefinedProp: {
    someDefinedPropChild: '<someDefinedPropChild>'
  }
}

const {
    masterCategoryID,
    siteId,
    assortmentId,

    someDefinedProp,
    someDefinedProp: { someDefinedPropChild } = {},
    someDefinedProp: { someUndefinedPropChild } = {},

    servicing,
    servicing: { itemServiceTypeID } = {},
    servicing: { style } = {},
    servicing: { text } = {},
    servicing: { serviceQuantity } = {}
} = item;

console.log('someDefinedProp:', someDefinedProp)
console.log('someDefinedPropChild:', someDefinedPropChild)
console.log('someUndefinedPropChild:', someUndefinedPropChild)

console.log('servicing:', servicing)
console.log('itemServiceTypeID:', itemServiceTypeID)
console.log('style:', style)
console.log('text:', text)
console.log('serviceQuantity:', serviceQuantity)
    
   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...