我正在嘗試通過此操作獲得溫度平均值:總溫度(一個月)除以該月中的天數(如果該月(xAxis 變數)存在于 createdAt(回應變數)中))。
例如:11 月的天數是(取決于 response.createdAt):3 12 月的天數是(取決于 response.createdAt):2
然后,將它們用于操作。
我知道我的解釋可能有歧義,所以如果您需要更精確,請不要猶豫。
var response = [{
"id": 294,
"createdAt": "2021-12-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":4.93,\"Humidity\":90}"
},{
"id": 294,
"createdAt": "2021-12-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":7.93,\"Humidity\":90}"
},
{
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":44.93,\"Humidity\":90}"
},{
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":2.93,\"Humidity\":90}"
},
{
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":3.93,\"Humidity\":90}"
}];
var xAxis = ['10','11','12']; // contains months (representinf as integer)
var temperatureFinal = Array(xAxis.length).fill(null);
response.forEach(function(item){
var dateData = moment(item.createdAt).format("MM");
xAxis.forEach(function(value){
if(dateData == value) temperatureFinal[xAxis.indexOf(value)] = JSON.parse(item.value).Temperature;
});
});
temperatureFinal.map(h=>console.log(h));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8 M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
uj5u.com熱心網友回復:
如果您跟蹤每個月的計數,您可以實作這一點。那么平均值就是運行總和除以每個月的事件數。一個物件非常適合跟蹤多個屬性。
var response = [
{
"id": 294,
"createdAt": "2021-12-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":4.93,\"Humidity\":90}"
},
{
"id": 294,
"createdAt": "2021-12-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":7.93,\"Humidity\":90}"
},
{
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":44.93,\"Humidity\":90}"
}, {
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":2.93,\"Humidity\":90}"
},
{
"id": 294,
"createdAt": "2021-11-08T00:00:00",
"zipcode": "33000",
"value": "{\"Temperature\":3.93,\"Humidity\":90}"
}
];
var xAxis = ['10', '11', '12']; // contains months (representing as integer)
var temperatureFinal = {};
xAxis.forEach(month => {
temperatureFinal[month] = {
month,
count: 0,
sum: 0,
average: 0
}
});
response.forEach(function(item) {
var dateData = moment(item.createdAt).format("MM");
xAxis.forEach(function(value) {
if (dateData == value) {
temperatureFinal[value].sum = JSON.parse(item.value).Temperature;
temperatureFinal[value].count ;
temperatureFinal[value].average = temperatureFinal[value].sum/temperatureFinal[value].count;
}
});
});
Object.values(temperatureFinal).map(h => console.log(h));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8 M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395629.html
標籤:javascript 数组 算法 瞬间
