簡體   English   中英

數組返回0長度,在html中無法調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM