reduce 方法
- E combine(
- E previousValue,
- E element
override
通过迭代结合集合中的元素,将集合reduce到一个单一值的方法。
可迭代的必须有至少一个元素。如果只有一个元素,则返回该元素。
否则,此方法从迭代器中的第一个元素开始,然后按迭代顺序结合剩余元素,就像
E value = iterable.first;
iterable.skip(1).forEach((element) {
value = combine(value, element);
});
return value;
计算可迭代项和的示例
final numbers = <double>[10, 2, 5, 0.5];
final result = numbers.reduce((value, element) => value + element);
print(result); // 17.5
实现
E reduce(E combine(E previousValue, E element)) {
int length = this.length;
if (length == 0) throw IterableElementError.noElement();
E value = this[0];
for (int i = 1; i < length; i++) {
value = combine(value, this[i]);
if (length != this.length) {
throw ConcurrentModificationError(this);
}
}
return value;
}