如何仅对数组中change为true的对象的price属性求和?
问题:仅对数组中
change为true的对象的price值求和 我有一个如下结构的对象数组(实际数据更多):
[ { serviceid: "979cf8e6", amount: 1, price: 11, materialsPrice: 100, enable: true, chenge: true }, { serviceid: "979cf812", amount: 1, price: 15.5, materialsPrice: 0, enable: true, chenge: true } ]
我需要仅对数组中change属性为true的对象的price值进行求和,但当前使用的Dart代码会对所有元素的price求和,无法满足需求,请求修改:
double get sumPay { double sum = listVariant .map((e) => e.price ) .fold(0, (previousValue, price) => previousValue + price!); return sum; }
解决方案
在map操作前添加where过滤方法,只保留change属性为true的元素即可:
double get sumPay { double sum = listVariant .where((e) => e.change == true) // 筛选出change为true的对象 .map((e) => e.price ) .fold(0, (previousValue, price) => previousValue + price!); return sum; }
注意:你提供的示例数据中属性名是chenge(拼写可能有误),如果实际代码里对象的属性名确实是chenge,请把e.change改成e.chenge,避免出现属性不存在的错误。
内容的提问来源于stack exchange,提问作者Andrii Havryliak
相关产品推荐
相关产品推荐

