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