我不知道如何提取对象中的属性值然后计算它们。
所以我有如下:
const data = [
{
topUp: true, value: 200
},
{
topUp: true, value: 18
},
{
topUp: false, value: 20
},
{
topUp: true, value: 100
},
]
const totalSpending = data.filter(
transaction => transaction.topUp == true
);
现在我应该得到 3 个对象。从这里我想获取每个值,例如 [200, 18, 100] 并将它们加在一起,这样我的 const totalSpending
将为 318。
最佳答案
您可以使用 reduce 相对轻松地实现此目的, conditional operator和 destructuring assignment :
const data = [{topUp: true, value: 200}, {topUp: true, value: 18}, {topUp: false, value: 20}, {topUp: true, value: 100}],
res = data.reduce((acc, {topUp, value}) => topUp ? acc + value : acc, 0);
console.log(res);
上面会得到属性topUp
和value
,然后将value
加到累加器中(即总和)如果topUp
为 true,如果为 false
,则返回 acc
(因此不会添加到总和)。
或者,您可以删除三元并使用带有 bool 值的数学:
const data = [{topUp: true, value: 200}, {topUp: true, value: 18}, {topUp: false, value: 20}, {topUp: true, value: 100}],
res = data.reduce((acc, {topUp, value}) => acc + value*topUp, 0);
console.log(res);
关于javascript - 如何提取对象的值并计算它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55003422/