[英]How to create a dynamic object with data obtained from subtraction of 2 other objects in Node.JS?
我有一個用例,我需要用當前和上個月(或季度或周)的數據生成 object 以及它們之間的差異。
我有完整的數據。 但是我對如何在 object 值之間執行減法並用它的結果創建一個新的 object 感到困惑。
例如,我有以下數據。
data = {
"variables": [
"heat",
"humidity"
],
"lables": [
"February",
"January",
"December",
"November",
"October",
"September"
],
"values": [
[
300,
40,
0,
7000,
250,
150
],
[
400,
10,
0,
8000,
150,
50
]
]
}
現在我想生成以下 object。
result= {
"variables": [
"heat",
"humidity"
],
"lables": [
"February",
"January",
"December",
"November",
"October",
"September"
],
"values": [
[
300,
40,
0,
7000,
250,
150
],
[
400,
10,
0,
8000,
150,
50
]
],
"current":{
"_id":"February",
"heat":300,
"humidity":400
},
"previous":{
"_id":"January",
"heat":40,
"humidity":10
},
"difference":{
"heat":260,
"humidity":390
},
}
在這里, lables
和variables
是完全動態的。 即,如果只有一個變量可用,則只有一個數組values
數組。 有什么辦法可以達到上面的結果嗎?
你可以嘗試這樣的事情:
data.current = {
_id: data.lables[0],
...(data.variables.reduce((obj, variableName, variableIndex) => {
obj[variableName] = data.values[variableIndex][0]
return obj
}, {})
}
data.previous = {
_id: data.lables[1],
...(data.variables.reduce((obj, variableName, variableIndex) => {
obj[variableName] = data.values[variableIndex][1]
return obj
}, {}))
}
data.difference = {
...(data.variables.reduce((obj, variableName, variableIndex) => {
obj[variableName] = data.current[variableName] - data.previous[variableName]
return obj
}, {}))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.