Javascript 用对象求和数组
我有以下对象数组,我想总结一下所有出现的Javascript 用对象求和数组,javascript,lodash,Javascript,Lodash,我有以下对象数组,我想总结一下所有出现的watt: 让所有产品=[{ “唯一id”:“102”, “货币”:“$”, “价格”:“529.99”, “瓦特”:150 }, { “唯一id”:“11”, “货币”:“$”, “价格”:“323”, “瓦特”:150 }, { “唯一id”:“13”, “货币”:“$”, “价格”:“23”, “瓦特”:77 } ] 让我们来看看瓦特= _(所有产品) .map((对象,键)=>({ “瓦特”:.sumBy(objs,“瓦特”) })) .valu
watt
:
让所有产品=[{
“唯一id”:“102”,
“货币”:“$”,
“价格”:“529.99”,
“瓦特”:150
},
{
“唯一id”:“11”,
“货币”:“$”,
“价格”:“323”,
“瓦特”:150
},
{
“唯一id”:“13”,
“货币”:“$”,
“价格”:“23”,
“瓦特”:77
}
]
让我们来看看瓦特=
_(所有产品)
.map((对象,键)=>({
“瓦特”:.sumBy(objs,“瓦特”)
}))
.value()
console.log(getWatt)
只需拿一个带有对象数组的单键和想要的键瓦特
求和即可
您的尝试使用对象,而不是的数组.sumBy
。对象不是数组,返回值为零
var-allProducts=[{唯一id:“102”,货币:“$”,价格:“529.99”,瓦特:150},{唯一id:“11”,货币:“$”,价格:“323”,瓦特:150},{唯一id:“13”,货币:“$”,价格:“23”,瓦特:77},
getWatt=uu.sumBy(所有产品,'watt');
console.log(getWatt)
使用纯js很容易
const sum=allProducts.reduce((a,{watt})=>a+watt,0);
控制台日志(总和)代码>
让所有产品=[{
“唯一id”:“102”,
“货币”:“$”,
“价格”:“529.99”,
“瓦特”:150
},
{
“唯一id”:“11”,
“货币”:“$”,
“价格”:“323”,
“瓦特”:150
},
{
“唯一id”:“13”,
“货币”:“$”,
“价格”:“23”,
“瓦特”:77
}
]
尝试以下操作:
让所有产品=[{
“唯一id”:“102”,
“货币”:“$”,
“价格”:“529.99”,
“瓦特”:150
},
{
“唯一id”:“11”,
“货币”:“$”,
“价格”:“323”,
“瓦特”:150
},
{
“唯一id”:“13”,
“货币”:“$”,
“价格”:“23”,
“瓦特”:77
}
];
var总和=所有产品。减少((总和,a)=>{
返回和+a.watt;
},0);
控制台日志(总和)代码>我已经阅读了答案,但我想对您的问题进行解释。获取数组的原因是使用。Asmap
返回数组而不是单个元素。此外,您希望得到修改后的返回数组,而map
不这样做
你想要实现的是可以通过使用。我的意思是,这就是为什么存在.reduce
让所有产品=[{
“唯一id”:“102”,
“货币”:“$”,
“价格”:“529.99”,
“瓦特”:150
},
{
“唯一id”:“11”,
“货币”:“$”,
“价格”:“323”,
“瓦特”:150
},
{
“唯一id”:“13”,
“货币”:“$”,
“价格”:“23”,
“瓦特”:77
}
];
var getWatt=所有产品的功率减少((acc,curr)=>acc+curr.watt,0);
console.log(getWatt)代码>