[英]Trouble with JavaScript 2D array and nested loop
你能解釋一下我錯過了什么嗎? 可能還有我能做些什么來解決它。 我收到錯誤:TypeError:嘗試將數據添加到此二維數組時無法設置未定義的屬性(設置“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);
});
});
您應該檢查matrix[index]
是否為數組,如果是,您應該在matrix[index]
處創建一個數組。
matrix[multipleLineCtr] ||= [];
或傳統方式:
if (!Array.isArray(matrix[index])) {
matrix[index] = [];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.