[英]Array return 0 length, unable to call it in html
我在html中調用ticketCountData,但是什么也沒返回,原因是數組長度為0。
結果 - 包含所有數據的主數組,
在下面的腳本中,我正在檢查數組中出現的唯一名稱的次數,並返回它的數量:
result.forEach((row) => {
if(!(row['Owner'] in ticketCountData))
ticketCountData[row['Owner']] = 0;
ticketCountData[row['Owner']] += 1;
})
console.log(ticketCountData);
數組顯示正確的數據,但它的長度為 0。我可以檢查它的長度
console.log(Object.keys(ticketCountData).length);
但是我不確定如何調用數組中的值,如下所示:
Array(0)
"": 10
john.smith1: 18
john.smith2: 13
john.smith3: 21
john.smith4: 24
謝謝!
您需要了解您的 ticketCountData 不是一個數組 - 它是一個 object。 javascript中的方括號可以有不同的使用方式,具體你需要知道這兩個表達式是相同的:
ob.name='andrew';
ob['name']='andrew';
因此,您的代碼運行完美,但生成了一個 object,其具有唯一名稱作為鍵,計數作為值。 通常要將其轉換為包含名稱和計數的數組,您可以執行以下操作:
let countDataList=Object.keys(ticketCountData).map((key)=> ({
name:key,
count: ticketCountData[key],
}))
你應該使用JS的function hasOwnProperty
。
result.forEach((row) => {
if(!ticketCountData.hasOwnProperty(row['Owner']) ){
ticketCountData[row['Owner']] = 0;
}
ticketCountData[row['Owner']] += 1;
})
console.log(ticketCountData);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.