大家好,我不知道该如何提取对象中的属性值然后进行计算。
所以我有如下
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
);
Run Code Online (Sandbox Code Playgroud)
现在我应该得到3个对象。从这里我想获得每个值[200,18,100]并将它们加在一起,这样我const totalSpending就等于318
您可以使用reduce,条件运算符和销毁分配相对容易地实现这一点:
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);Run Code Online (Sandbox Code Playgroud)
上面的方法将获取topUp和的属性value,然后value如果topUp为true,则将其添加到累加器(即总和)中;如果为true,false它将返回acc(因此不会将其加和)。
另外,您可以删除三元数,并将数学与布尔值一起使用:
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);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |