使用 for 循环 Mongoose 访问嵌套在对象中嵌套的对象的属性

我是 js 的新手(显然)。我正在使用猫鼬,我想知道:为什么在使用 for 循环访问属性时会出错?

我正在使用包含嵌入式架构的架构

Usr.findOne({numCli: req.body.numTar}, function(err, doc){

  if (doc) {

    var i = 0;
    const lengthAcc = doc.acc.length;
//can access prop individually
    console.log(doc.acc[lengthAcc-1].propOne);

// can't using for loop: TypeError: Cannot read property 'propOne' of undefined
    for (i = 0; i < 10; i++) {
    console.log(doc.acc[lengthAcc - i].propOne);


    }
  }
 });
陶西夫·谢赫

如果检查您的代码,则在第一个控制台中

 console.log(doc.acc[lengthAcc-1].propOne);

你试图访问 doc.acc[lengthAcc-1].propOne 所以它的工作

但在第二个控制台

console.log(doc.acc[lengthAcc - i].propOne);

你试图访问 doc.acc[lengthAcc-i].propOne 和 i=0 所以它是 doc.acc[lengthAcc-0].propOne 这就是为什么它不起作用

bcz array.length 返回数组中元素的个数,所以如果数组包含 5 个元素 (0-4) 所以 array.length 返回 5

如果你尝试访问 array[array.length - 1] = 4 它等于 array[4] 所以它的工作

但是如果你尝试访问 array[array.length - 0] = 5 它等于 array[5] 并且 array 没有索引 5 所以它会抛出错误。

所以,解决方案只是从 1 开始循环

for (i = 1; i < 10; i++) {
console.log(doc.acc[lengthAcc - i].propOne);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用循环访问嵌套列表中的对象

如何在TypeScript中循环嵌套在对象中的对象

如何使用循环访问对象中已存在的数组中的嵌套对象

在嵌套对象上使用for循环

如何使用_.where通过ID查找嵌套在对象数组中的对象?

使用for循环访问javascript中的对象属性?

如何访问和循环嵌套在另一个对象内部的对象中的数组?

使用其 id 更新 mongoose 数组中的嵌套对象

如何使用嵌套在 Elasticsearch 中搜索不在对象中的数据?

如何填充嵌套在 Mongoose 对象数组中的文档?

如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?

如何使用jQuery在JavaScript中循环嵌套数组对象

如何使用对象中的嵌套循环呈现SectionList

嵌套在R中的for循环中,使用title中的变量,

Ansible - 在对象列表中循环嵌套数组?

在对象数组中使用“虚拟”(Mongoose)

使用键或循环在Javascript中访问对象属性之间的区别

使用变量构建嵌套对象的动态MongoDB / Mongoose查询

如何使用Mongoose ref连接创建嵌套对象?

访问 json 对象循环的嵌套/内部循环

使用对象中的数组对对象的嵌套循环数组进行 Terraform

使用嵌套在.map中的.find构建对象数组

如何使用 JSONata 附加嵌套在 JSON 对象中的数组

使用流从嵌套在另一个对象列表中的对象列表中筛选属性

使用 find 查询嵌套对象在 mongoose (MongoDB) 中不起作用

Mongoose 在循环中获取多个对象

使用嵌套的forEach循环将对象推入数组

嵌套在r中的循环

如何使用嵌套 for 循环在 JavaScript 中的对象中定位数组的名称和列表