Spec-Zone.ru › Dart 2

dart:collection

Метод reduce

E reduce(
  1. E combine(
    1. E value,
    2. E element
    )
)
inherited

Сводит коллекцию к единственному значению, итеративно комбинируя элементы коллекции с помощью предоставленной функции.

Итерируемый объект должен содержать по крайней мере один элемент. Если у него есть только один элемент, возвращается этот элемент.

В противном случае этот метод начинается с первого элемента из итератора, а затем комбинирует его с оставшимися элементами в порядке итерации, как если бы:

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)) {
  int length = this.length;
  if (length == 0) throw IterableElementError.noElement();
  E value = elementAt(0);
  for (int i = 1; i < length; i++) {
    value = combine(value, elementAt(i));
    if (length != this.length) {
      throw ConcurrentModificationError(this);
    }
  }
  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-collection/ListQueue/reduce.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API