在Dart中汇总对象列表中的对象属性值的干净方法

时间:2020-01-12 21:49:30

标签: dart

假设我有一个课程 CartItem

class CartItem {
  final int amount;

  CartItem({this.amount});
}

以及 cartItems 列表中的两个 CartItem 实例

  CartItem itemOne = CartItem(amount: 10);
  CartItem itemTwo = CartItem(amount: 25);

  List<CartItem> cartItems = [itemOne, itemTwo];

获得 cartItems 总额的最干净方法是什么?

3 个答案:

答案 0 :(得分:5)

使用fold

int total = cartItems.fold(0, (sum, item) => sum + item.amount);

答案 1 :(得分:1)

尝试使用mapreduce方法。

int sum = cartItems.map((item) => item.amount).reduce((a, b) => a + b);

答案 2 :(得分:0)

对我有用!

double total = list.fold(0, (tot, item) => tot.toDouble() + item.amount);
print('Total is $total');