我在這個結構中有一些 JSON 資料:
"Sensor": "14829304",
"DATA": {
"Rainfall": {
"2022-01-11": {
"T1": {
"MM": "3.94",
"CONFIRMED": "T"
},
"T2": {
"MM": "3.91",
"CONFIRMED": "T"
}
}
},
"Temperature": {
"2022-01-11": {
"T1": {
"MM": "9.32",
"CONFIRMED": "T"
},
"T2": {
"MM": "9.44",
"CONFIRMED": "T"
}
}
我在一天內和一年中的多天收到多個讀數。
我希望能夠總結資料中的所有降雨量,然后總結定義時間段(如昨天、上個月或兩個日期之間)的所有降雨量。
我曾嘗試在物件上使用 map 和 reduce,但我正在努力讓它作業。
當我嘗試使用 for 回圈時,我似乎無法通過日期,例如:
for(data in weatherdata.DATA.Rainfall) {
for(date in data) {
console.log(data[date])
}
}
任何指標將不勝感激
uj5u.com熱心網友回復:
您不需要嵌套回圈。您的第一個回圈是迭代Rainfall物件中的日期。
然后你需要[date]用作該物件中的鍵
for (date in weatherdata.DATA.Rainfall) {
console.log(weatherdata.DATA.Rainfall[date]);
}
要總結所有降雨量,您需要一個嵌套回圈來處理每天的時間。
const weatherdata = {
"Sensor": "14829304",
"DATA": {
"Rainfall": {
"2022-01-11": {
"T1": {
"MM": "3.94",
"CONFIRMED": "T"
},
"T2": {
"MM": "3.91",
"CONFIRMED": "T"
}
}
},
"Temperature": {
"2022-01-11": {
"T1": {
"MM": "9.32",
"CONFIRMED": "T"
},
"T2": {
"MM": "9.44",
"CONFIRMED": "T"
}
}
}
}
};
let total_rainfall = 0;
let testdate = "2022-01-11";
Object.entries(weatherdata.DATA.Rainfall).forEach(([date, times]) => {
if (date == testdate) {
Object.values(times).forEach(data => total_rainfall = parseFloat(data.MM));
}
});
console.log(total_rainfall);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449320.html
標籤:javascript json
上一篇:如果我在設定后設定為未定義,為什么process.env.WHATEVER!==未定義?
下一篇:如果條件正確,顯示什么錯誤?
