簡體   English   中英

當鍵/值是動態的時,將JSON值轉換為數字

[英]Convert JSON values to number when key/values are dynamic

我正在使用d3.json解碼鍵/值未知的數據集。 我需要將數字值轉換為數字,其余部分不予處理。

我的JSON看起來像這樣:

[{"file":"morning","row_total":"1095935","attr1":"79","attr2":""},
{"file":"noon","row_total":"221167","attr1":"174","attr2":"114"},
{"file":"night","row_total":"1317102","attr1":"253","attr2":"114"}]

它是使用d3.json從PHP文件中讀取的。 對於每個可以(不拋出NaN)的值,我需要轉換為數字(d3為此使用+符號):

d3.json("getData.php", function(error, data) {
    if (error) throw error;

    data.forEach(function(d) {
        if(!isNaN(d.i = +d.i)
          d.i = +d.i
          )})

顯然,我的測試/循環邏輯存在問題。 我真的很感謝這里的一些指導。

謝謝!

isNaN將適用於數字字符串-賦值運算符可能會拋出您的代碼-您可以執行以下操作:

if(!isNaN(d.i)) {

您還缺少isNaN檢查的if語句的第二個)

isNaN("1") //false
isNaN("x") //true

假設我應該閱讀更多。 您需要2個循環-一個循環循環數組,另一個循環測試循環對象的每個鍵/值:

for (var i = 0; i < data.length; i++) {
    for (var key in data[i]) {
        if (!isNaN(data[i][key])) {
            data[i][key] = +data[i][key];
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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