在 Dart 中的对象列表中求和对象属性值的简洁方法

Yur*_*ots 4 dart

假设我有一个CartItem

class CartItem {
  final int amount;

  CartItem({this.amount});
}
Run Code Online (Sandbox Code Playgroud)

和两个实例CartItemcartItems列表

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

  List<CartItem> cartItems = [itemOne, itemTwo];
Run Code Online (Sandbox Code Playgroud)

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

Abi*_*n47 16

fold

int total = cartItems.fold(0, (sum, item) => sum + item.amount);
Run Code Online (Sandbox Code Playgroud)


Die*_*vis 6

尝试使用mapreduce方法。

int sum = cartItems.map((item) => item.amount).reduce((a, b) => a + b);
Run Code Online (Sandbox Code Playgroud)