You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅对数组中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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:40:25