最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

声明的NodeJS动态大小对象数组

IT培训 admin 11浏览 0评论

声明的NodeJS动态大小对象数组

以下是我声明我的对象数组:

let arrayOfObjects = [{ _id:0, names:'' }];

我要指派像下面的值:

for (var i = 0; i < kelasList.length; i++){
  for (var j = 0; j < absentees[i].length; j++){                    
    arrayOfObjects[i]._id = absentees[i][j]._id
    arrayOfObjects[i].names = absentees[i][j].firstName + " " + absentees[i][j].lastName
  }
}

运行上面的代码将返回

UnhandledPromiseRejectionWarning: TypeError: Cannot set property '_id' of undefined at line

这基本上指向线

arrayOfObjects[i]._id

但它会分配值没有任何问题,如果我写的

arrayOfObjects[0]._id

代替

arrayOfObjects[i]._id

我的假设是let arrayOfObjects = [{ _id:0, names:'' }];将创建对象的数组,所以我将能够访问/设置其值与

arrayOfObjects[i]._id

但似乎let arrayOfObjects = [{ _id:0, names:'' }];这里只会创建对象的单个阵列。所以,目前对我来说,传递更多的价值,我需要声明它像

let arrayOfObjects = [{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' }];

但当然,这是不可行的,因为我不知道我应该数组的大小是什么。所以其实我应该如何声明,它可以包含对象的动态尺寸对象的数组?

回答如下:

你可以简单地检查元素的数组中已经存在,如果它不,创建它。

let arrayOfObjects = [];

for (var i = 0; i < kelasList.length; i++) {
  for (var j = 0; j < absentees[i].length; j++) {
    if (!arrayOfObjects[i]) {
      arrayOfObjects[i] = {
        _id: 0,
        names: ''
      };
    }
    arrayOfObjects[i]._id = absentees[i][j]._id
    arrayOfObjects[i].names = absentees[i][j].firstName + " " + absentees[i][j].lastName
  }
}

声明的NodeJS动态大小对象数组

以下是我声明我的对象数组:

let arrayOfObjects = [{ _id:0, names:'' }];

我要指派像下面的值:

for (var i = 0; i < kelasList.length; i++){
  for (var j = 0; j < absentees[i].length; j++){                    
    arrayOfObjects[i]._id = absentees[i][j]._id
    arrayOfObjects[i].names = absentees[i][j].firstName + " " + absentees[i][j].lastName
  }
}

运行上面的代码将返回

UnhandledPromiseRejectionWarning: TypeError: Cannot set property '_id' of undefined at line

这基本上指向线

arrayOfObjects[i]._id

但它会分配值没有任何问题,如果我写的

arrayOfObjects[0]._id

代替

arrayOfObjects[i]._id

我的假设是let arrayOfObjects = [{ _id:0, names:'' }];将创建对象的数组,所以我将能够访问/设置其值与

arrayOfObjects[i]._id

但似乎let arrayOfObjects = [{ _id:0, names:'' }];这里只会创建对象的单个阵列。所以,目前对我来说,传递更多的价值,我需要声明它像

let arrayOfObjects = [{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' },{ _id:0, names:'' }];

但当然,这是不可行的,因为我不知道我应该数组的大小是什么。所以其实我应该如何声明,它可以包含对象的动态尺寸对象的数组?

回答如下:

你可以简单地检查元素的数组中已经存在,如果它不,创建它。

let arrayOfObjects = [];

for (var i = 0; i < kelasList.length; i++) {
  for (var j = 0; j < absentees[i].length; j++) {
    if (!arrayOfObjects[i]) {
      arrayOfObjects[i] = {
        _id: 0,
        names: ''
      };
    }
    arrayOfObjects[i]._id = absentees[i][j]._id
    arrayOfObjects[i].names = absentees[i][j].firstName + " " + absentees[i][j].lastName
  }
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论