This repository has been archived by the owner. It is now read-only.
Permalink
85 lines (67 sloc) 2.93 KB

This is RxJS v 4. Find the latest version here

Rx.Observable.prototype.reduce(accumulator, [seed])

Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified seed value is used as the initial accumulator value.

For aggregation behavior with incremental intermediate results, see the scan method.

Arguments

  1. accumulator (Function): An accumulator function to be invoked on each element with the following arguments:
    1. acc: Any - the accumulated value.
    2. currentValue: Any - the current value
    3. index: Number - the current index
    4. source: Observable - the current observable instance
  2. [seed] (Any): The initial accumulator value.

Returns

(Observable): An observable sequence containing a single element with the final accumulator value.

Example

/* With a seed */
var source = Rx.Observable.range(1, 3)
  .reduce(function (acc, x, idx, source) {
    return acc * x;
  }, 1)

var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });

// => Next: 6
// => Completed

/* Without a seed */
var source = Rx.Observable.range(1, 3)
  .reduce(function (acc, x, idx, source) {
    return acc * x;
  })

var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });

// => Next: 6
// => Completed

Location

File:

Dist:

Prerequisites:

NPM Packages:

NuGet Packages:

Unit Tests: