声明的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
}
}