使用 d3.js 進行資料可視化。我是 JavaScript 的新手,但我來到這里是為了找出問題的根源。
我正在嘗試繪制一些基于電影的資料,其中每個資料點都是字串資料型別。因此,我必須將日期轉換為 Date 資料型別,并將 Movie Ratings 轉換為 Number 或 Float 資料型別,以便 d3 正確繪制資料,否則會出現錯誤。
差不多,資料存盤在一個陣列中,該陣列包含 11 個其他陣列,每個電影評論家一個,其中每個電影評論家陣列包含當年觀看的每部電影的 237 個物件,其中每個物件看起來像
{
"key": "Derek",
"Date": "2019-01-25T05:00:00.000Z",
"value": 5,
"Movie": "The Butterfly Effect",
"Pickedby": "Dan"
}
其中 key 是影評人,Pickedby 是挑選電影的人。
下面是我使用的轉換像一個日期代碼1/25/2019到"2019-01-25T05:00:00.000Z"
,我試圖值專案轉換(從字串)成數,或浮點數。(有些評級可能是 3.5、6.5 等)
for (let j = 0; j < series.length; j ) {
for (let i = 0; i <series[j].length; i ){
series[j][i].Date = new Date(series[j][i].Date)
series[j][i].value = Number(series[i][j].value)
}
}
日期轉換代碼行按預期作業。但是,將value專案轉換為 Number 或 Float 會導致Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0')出現錯誤。
問題是,整個陣列中的所有值項資料都是一個字串。沒有未定義的問題。當然,有些值是 (x's) 或其他一些字母字符,但至少應該將其轉換為 NaN,并且它適用于某些。
鑒于我提供的資訊,對為什么會出現此錯誤的任何想法?我總是可以提供更多細節。
謝謝!
uj5u.com熱心網友回復:
代碼中似乎有錯別字,您沒有訪問數字轉換中的正確值。
代替:
series[j][i].value = Number(series[i][j].value)
它應該是:
series[j][i].value = Number(series[j][i].value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/354067.html
標籤:javascript d3.js
上一篇:無法獲取.npy檔案中專案的長度
