如何破坏有时会作为null [duplicate]接收的对象属性

问题描述 投票:0回答:1

我下面有我通过api接收到的该对象,但有时SimplesNacional属性为null。仅当它不为null时,才如何对其进行解构(??),因为它具有一些嵌套的属性,这些属性在解构时破坏了我的程序?

这是对象:

const {
        Retorno: {
          ReceitaPJ: {
            NumeroInscricao: numeroInscricao,
            Matriz: matriz,
            DataAbertura: dataAbertura,
            NomeEmpresarial: nomeEmpresarial,
            NomeFantasia: nomeFantasia,
            NaturezaJuridica: naturezaJuridica,
            SituacaoCadastral: situacaoCadastral,
          },
          SimplesNacional: {
            SituacaoSimplesNacional: situacaoSimplesNacional,
            SituacaoSIMEI: situacaoSIMEI,
            SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
            SIMEIPeriodosAnteriores,
            DataConsulta: dataConsulta,
          },
          CadastroPJ: {
            Telefones: telefones,
            Enderecos: enderecos,
            Emails: emails,
            Socios: socios,
          },
        },
      } = response;

这是用法:

result.data = {
        cadastroPJ: {
          numeroInscricao,
          matriz,
          dataAbertura,
          nomeEmpresarial,
          nomeFantasia,
          naturezaJuridica,
          situacaoCadastral,
        },
        simplesNacional: {
          nomeEmpresarial,
          situacaoSimplesNacional,
          situacaoSIMEI,
          simplesNacionalPeriodosAnteriores,
          SIMEIPeriodosAnteriores,
          dataConsulta,
        },
        telefones: telefones.map((x) => ({
          numero: x.TelefoneComDDD,
        })),
        enderecos: enderecos.map((x) => ({
          logradouro: x.Logradouro,
          numero: x.Numero,
          bairro: x.Bairro,
          cidade: x.Cidade,
          uf: x.UF,
          cep: x.CEP,
        })),
        emails: emails.map((x) => ({
          endereco: x.EnderecoEmail,
        })),
        socios: socios.map((x) => ({
          documento: x.Documento,
          nome: x.Nome,
          percentualParticipacao: x.PercentualParticipacao,
          dataEntrada: x.DataEntrada,
        })),
      };

Visual Studio Code终端说:Cannot destructure property `SituacaoSimplesNacional` of 'undefined' or 'null'.,因为属性SimplesNacional为空。

javascript node.js object destructuring
1个回答
1
投票
const {
  Retorno: {
    ReceitaPJ: {
      NumeroInscricao: numeroInscricao,
      Matriz: matriz,
      DataAbertura: dataAbertura,
      NomeEmpresarial: nomeEmpresarial,
      NomeFantasia: nomeFantasia,
      NaturezaJuridica: naturezaJuridica,
      SituacaoCadastral: situacaoCadastral,
    },
    SimplesNacional,
    CadastroPJ: {
      Telefones: telefones,
      Enderecos: enderecos,
      Emails: emails,
      Socios: socios,
    },
  },
} = response

if (SimplesNacional) {
  var {
    SituacaoSimplesNacional: situacaoSimplesNacional,
    SituacaoSIMEI: situacaoSIMEI,
    SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
    SIMEIPeriodosAnteriores,
    DataConsulta: dataConsulta,
  } = SimplesNacional
}

只需两步即可完成

EDIT:如果要使用const ...

const {
   SituacaoSimplesNacional: situacaoSimplesNacional,
   SituacaoSIMEI: situacaoSIMEI,
   SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
   SIMEIPeriodosAnteriores,
   DataConsulta: dataConsulta,
 } = (SimplesNacional || {})

但是无论如何,深入对象将在以后引发错误...

© www.soinside.com 2019 - 2024. All rights reserved.