метод reduce
- E combine(
- E значение,
- E элемент
Сводит коллекцию к одному значению, итеративно комбинируя элементы коллекции с помощью предоставленной функции.
Итерируемый объект должен содержать по крайней мере один элемент. Если он содержит только один элемент, возвращается этот элемент.
В противном случае этот метод начинается с первого элемента из итератора, а затем комбинирует его с оставшимися элементами в порядке итерации, как если бы:
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 value, E element)) {
Iterator<E> iterator = this.iterator;
if (!iterator.moveNext()) {
throw IterableElementError.noElement();
}
E value = iterator.current;
while (iterator.moveNext()) {
value = combine(value, iterator.current);
}
return value;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Iterable/reduce.html