UNB/ CS/ David Bremner/ teaching/ cs2613/ books/ mdn/ Reference/ Global Objects/ Iterator/ Iterator.prototype.reduce()

The reduce() method of Iterator instances is similar to Array.prototype.reduce: it executes a user-supplied "reducer" callback function on each element produced by the iterator, passing in the return value from the calculation on the preceding element. The final result of running the reducer across all elements is a single value.

Syntax

reduce(callbackFn)
reduce(callbackFn, initialValue)

Parameters

Return value

The value that results from running the "reducer" callback function to completion over the entire iterator.

Exceptions

Description

See Array.prototype.reduce for details about how reduce() works. Unlike most other iterator helper methods, it does not work well with infinite iterators, because it is not lazy.

Examples

Using reduce()

The following example creates an iterator that yields terms in the Fibonacci sequence, and then sums the first ten terms:

function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

console.log(
  fibonacci()
    .take(10)
    .reduce((a, b) => a + b),
); // 143

Specifications

Browser compatibility

See also