Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
¿Por qué no estoy definido al acceder a una matriz dentro de un objeto?

let newdata = await tripModel.find( { tripId: ID }, {salesOrder:1, no: "$deliveryDetails.invoiceNo", _id: 0 } );

 let nullInvoices = []; console.log("vvvvvvv", newdata[0].salesOrder); for (let i = 0; i < newdata[0].no.length; i++) { if (newdata[0].no[i] === null) nullInvoices.push({ SO: newdata[0].salesOrder[i], invoice: newdata[0].no[i], }); }`

//error: vvvvvvv { salesOrder: [ 623d917d4c9f21730ace6256, 623da8bbeae48b2f34372a95, 623da8bbeae48b2f34372a92, 623d98964c9f21730ace642c ], no: [ null, '0900009293', '0900009294', null ] } reason TypeError: Cannot read properties of undefined (reading 'length')

Necesito acceder a "no", pero arroja como indefinido.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Desde tu

console.log("vvvvvvv", newdata[0].salesOrder); devoluciones de declaraciones

 { salesOrder: [ 623d917d4c9f21730ace6256, 623da8bbeae48b2f34372a95, 623da8bbeae48b2f34372a92, 623d98964c9f21730ace642c ], no: [ null, '0900009293', '0900009294', null ], }

su iteración debe ser como la siguiente

 let nullInvoices = []; console.log("vvvvvvv", newdata[0].salesOrder); for (let i = 0; i < newdata[0].salesOrder.no.length; i++) { if (newdata[0].salesOrder.no[i] === null) nullInvoices.push({ SO: newdata[0].salesOrder.salesOrder[i], invoice: newdata[0].salesOrder.no[i], }); }

Ejemplo de implementación

 const newdata = [{}]; newdata[0].salesOrder = { salesOrder: ['623d917d4c9f21730ace6256', '623da8bbeae48b2f34372a95', '623da8bbeae48b2f34372a92', '623d98964c9f21730ace642c'], no: [null, '0900009293', '0900009294', null], } let nullInvoices = []; for (let i = 0; i < newdata[0].salesOrder.no.length; i++) { if (newdata[0].salesOrder.no[i] === null) nullInvoices.push({ SO: newdata[0].salesOrder.salesOrder[i], invoice: newdata[0].salesOrder.no[i], }); } console.log(nullInvoices);

about 4 years ago · Juan Pablo Isaza Relatório

0

En realidad, puede crear primero un objeto de invoices y luego filtrarlo por cualquier condición:

 const data = {salesOrder: [ '623d917d4c9f21730ace6256', '623da8bbeae48b2f34372a95', '623da8bbeae48b2f34372a92', '623d98964c9f21730ace642c'],no: [ null, '0900009293', '0900009294', null ]}; const invoices = data.salesOrder .map((SO, index) => ({ SO, invoice: data.no[index] })); const nullInvoices = invoices .filter(({ invoice }) => invoice === null); console.log(nullInvoices);
 .as-console-wrapper{min-height: 100%!important; top: 0}

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda