Skip to content

Latest commit

 

History

History
84 lines (67 loc) · 2.93 KB

reduce.md

File metadata and controls

84 lines (67 loc) · 2.93 KB

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: