对象的值"/>
在NodeJS / Express中保留2个对象的值
我有2个对象:
const totalConso = [
{ horoseason: 'BASE', value: 0 },
{ horoseason: 'HPH', value: 0 },
{ horoseason: 'HCH', value: 0 },
{ horoseason: 'HPE', value: 5853.16 },
{ horoseason: 'HCE', value: 4460.99 }
]
const totalAutoConso = [ { horoseason: 'HPH', value: 0 },
{ horoseason: 'HCH', value: 0 },
{ horoseason: 'HPE', value: 2354.62 },
{ horoseason: 'HCE', value: 0 }
]
我想休息一下他们的价值。
我可以那样做,但是看起来并不优雅
onst totalConsoBase = totalConso.filter(it => it.horoseason === "BASE").shift()
const totalAutoConsoBase = totalAutoConso.filter(it => it.horoseason === "BASE").shift()
const totalConsoHPH = totalConso.filter(it => it.horoseason === "HPH").shift()
const totalAutoConsoHPH = totalAutoConso.filter(it => it.horoseason === "HPH").shift()
const totalConsoHCH = totalConso.filter(it => it.horoseason === "HCH").shift()
const totalAutoConsoHCH = totalAutoConso.filter(it => it.horoseason === "HCH").shift()
const totalConsoHPE = totalConso.filter(it => it.horoseason === "HPE").shift()
const totalAutoConsoHPE = totalAutoConso.filter(it => it.horoseason === "HPE").shift()
const totalConsoHCE = totalConso.filter(it => it.horoseason === "HCE").shift()
const totalAutoConsoHCE = totalAutoConso.filter(it => it.horoseason === "HCE").shift()
console.log(totalConsoBase, totalAutoConsoBase, totalConsoHPH, totalAutoConsoHPH)
const totalGridConso = [
{
horoseason: "BASE",
value: typeof totalConsoBase !== 'undefined' ? totalConsoBase.value - totalAutoConsoBase.value : null
}, {
horoseason: "HPH",
value: typeof totalConsoHPH !== 'undefined' ? totalConsoHPH.value - totalAutoConsoHPH.value : null
}, {
horoseason: "HCH",
value: typeof totalConsoHCH !== 'undefined' ? totalConsoHCH.value - totalAutoConsoHCH.value : null
}, {
horoseason: "HPE",
value: typeof totalConsoHPE !== 'undefined' ? totalConsoHPE.value - totalAutoConsoHPE.value : null
}, {
horoseason: "HCE",
value: typeof totalConsoHCE !== 'undefined' ? totalConsoHCE.value - totalAutoConsoHCE.value : null
},
]
有什么办法可以改善我的代码?
回答如下:您可以对数组使用JavaScript map
函数。
对于您的更新示例,我将提出以下内容:
map
此解决方案假定您的const totalGridConso = totalConso.map(x => {
const totalAutoConsoValue = totalAutoConso.filter(y => y.horoseason == x.horoseason).shift()
return {
horoseason: x.horoseason,
value: typeof totalAutoConsoValue != 'undefined' ? x.value - totalAutoConsoValue.value : null
}
})
没有两个具有相同totalAutoConso
类型的对象。
P.S。当您更新问题时,我已经更新了我的初始答案。
更多推荐
在NodeJS / Express中保留2个对象的值
发布评论