vue使用List.reduce实现统计
需要对集合的某些元素的值进行计算时,可以在计算属性中使用forEach方法
1.语法:集合.reduce ( ( 定义阶段性累加后的结果 , 定义遍历的每一项 ) => 定义每一项求和逻辑执行后的返回结果 , 定义起始值 )
2、简单使用场景:例如下面直接加数量得总数结果可以通过reduce统计出来
代码: myList.reduce ( ( zong ,item ) =>zong+item.num , 0 )
data: {
xxx
xxx
},
computed:{
furitCount(){
myList.reduce( ( zong ,item ) =>zong+item.num,0)
}
}
3.复杂使用场景:
选择2个火龙果,再选中7个杨梅,未选中不加,总水果个数为9个
下面这个总数也可以通过reduce统计出来,注意每一项都需要加上条件过滤,如果这一项是选中,就累加,把之前算的sum加上每一项的数量返,否则表示这一项未选中,不累加,把之前算的sum返回即可:
data: {
xxx
xxx
},
computed:{
totalCount(){
return this.fruitList.reduce((sum,item)=>{
if(item.isChecked===true){//这一项是选中,就累加,把之前算的sum加上每一项的数量返回
return sum+item.num
}else{//这一项未选中,不累加,把之前算的sum返回即可
return sum
}
},0);
}
}