javascript - 为什么在访问对象内的数组时出现未定义?

标签 javascript arrays mongodb object

let newdata = wait 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')

I need to access "no", but it is throwing as undefined.

最佳答案

自从你

console.log("vvvvvvv", newdata[0].salesOrder); 语句返回

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

您的迭代必须如下所示

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],
    });
}

示例实现

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);

关于javascript - 为什么在访问对象内的数组时出现未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71672878/

相关文章:

javascript - 比较两列中的随机数字集

javascript - 定位元素 Bootstrap 3

ios - 从 json 数据值创建字典

javascript - 从数组的字典 JS 获取数据时出现问题

javascript - 我可以在 JavaScript 上使用 img 标签来显示存储在 MongoDB 中的图像吗?

node.js - Mongoose Multi-Tenancy - 处理文档引用+填充

mongodb - 根据当前值更新 MongoDB 中的值

javascript - 如何使用 jquery 隐藏或显示带有两个选择选项的输入

javascript - 使用 React hooks 时事件监听器函数发生变化

javascript - 如何在JavaScript中将PHP的explode (';' ,$s,3) 与 s.split (';' ,3) 匹配?