JavaScript 2D阵列和嵌套循环的麻烦
您能解释一下我缺少的东西吗?以及我可以做的解决方案。 我正在收到错误:typeError:在尝试将数据添加到此2D数组时,无法设置未定义(设置'0')的属性。
wixData.query("paidLineItems").eq("paidOrderId", orderNumber).find().then((result)=>{
let nbrRecs = result.totalCount
let newOrder = [];
matrix = new Array(nbrRecs).fill(0).map(() => new Array(8).fill(0));
for (var i = 0; i < nbrRecs; i++) {
let lineItem = result.items[i];
if (result.items[i].prodQty > 1) {
let qty = result.items[i].prodQty
while (multipleLineCtr < qty) {
matrix[multipleLineCtr][0] = lineItem.email
matrix[multipleLineCtr][1] = lineItem.prodName
matrix[multipleLineCtr][2] = lineItem.prodQty
matrix[multipleLineCtr][3] = multipleLineCtr
matrix[multipleLineCtr][4] = "Jesus"
matrix[multipleLineCtr][5] = lineItem.paidOrderId
matrix[multipleLineCtr][6] = lineItem.purchaseDt
matrix[multipleLineCtr][7] = lineItem.dtSupportEnds
multipleLineCtr++;
}
}else {
matrix[cnt][0] = lineItem.email
matrix[cnt][1] = lineItem.prodName
matrix[cnt][2] = lineItem.prodQty
matrix[cnt][3] = 1
matrix[cnt][4] = "Jesus"
matrix[cnt][5] = lineItem.paidOrderId
matrix[cnt][6] = lineItem.purchaseDt
matrix[cnt][7] = lineItem.dtSupportEnds
cnt++;
}
}
})
.catch((error) => {
console.log(error);
});
});
Will you please explain what I'm missing? And possibly what I can do to fix it.
I'm receiving the error: TypeError: Cannot set properties of undefined (setting '0') while trying to add data to this 2D array.
wixData.query("paidLineItems").eq("paidOrderId", orderNumber).find().then((result)=>{
let nbrRecs = result.totalCount
let newOrder = [];
matrix = new Array(nbrRecs).fill(0).map(() => new Array(8).fill(0));
for (var i = 0; i < nbrRecs; i++) {
let lineItem = result.items[i];
if (result.items[i].prodQty > 1) {
let qty = result.items[i].prodQty
while (multipleLineCtr < qty) {
matrix[multipleLineCtr][0] = lineItem.email
matrix[multipleLineCtr][1] = lineItem.prodName
matrix[multipleLineCtr][2] = lineItem.prodQty
matrix[multipleLineCtr][3] = multipleLineCtr
matrix[multipleLineCtr][4] = "Jesus"
matrix[multipleLineCtr][5] = lineItem.paidOrderId
matrix[multipleLineCtr][6] = lineItem.purchaseDt
matrix[multipleLineCtr][7] = lineItem.dtSupportEnds
multipleLineCtr++;
}
}else {
matrix[cnt][0] = lineItem.email
matrix[cnt][1] = lineItem.prodName
matrix[cnt][2] = lineItem.prodQty
matrix[cnt][3] = 1
matrix[cnt][4] = "Jesus"
matrix[cnt][5] = lineItem.paidOrderId
matrix[cnt][6] = lineItem.purchaseDt
matrix[cnt][7] = lineItem.dtSupportEnds
cnt++;
}
}
})
.catch((error) => {
console.log(error);
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该检查
矩阵[index]
是一个数组,如果是,则应在matrix [index]
上创建一个数组。或传统方式:
You should check if the
matrix[index]
is an array or not, and if it is, you should create an array atmatrix[index]
.or the traditional way: