最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

嵌套在数组中的对象的访问属性,嵌套在具有for循环Mongoose的对象中

运维笔记admin10浏览0评论

嵌套在数组中的对象的访问属性,嵌套在具有for循环Mongoose的对象中

嵌套在数组中的对象的访问属性,嵌套在具有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.length - 1] = 4它等于数组[4]所以它的工作

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

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

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

评论列表(0)

  1. 暂无评论