1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- "use strict";
- var distinctUntilChanged_1 = require('./distinctUntilChanged');
- /* tslint:enable:max-line-length */
- /**
- * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,
- * using a property accessed by using the key provided to check if the two items are distinct.
- *
- * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.
- *
- * If a comparator function is not provided, an equality check is used by default.
- *
- * @example <caption>An example comparing the name of persons</caption>
- *
- * interface Person {
- * age: number,
- * name: string
- * }
- *
- * Observable.of<Person>(
- * { age: 4, name: 'Foo'},
- * { age: 7, name: 'Bar'},
- * { age: 5, name: 'Foo'},
- * { age: 6, name: 'Foo'})
- * .distinctUntilKeyChanged('name')
- * .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo' }
- * // { age: 7, name: 'Bar' }
- * // { age: 5, name: 'Foo' }
- *
- * @example <caption>An example comparing the first letters of the name</caption>
- *
- * interface Person {
- * age: number,
- * name: string
- * }
- *
- * Observable.of<Person>(
- * { age: 4, name: 'Foo1'},
- * { age: 7, name: 'Bar'},
- * { age: 5, name: 'Foo2'},
- * { age: 6, name: 'Foo3'})
- * .distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3))
- * .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo1' }
- * // { age: 7, name: 'Bar' }
- * // { age: 5, name: 'Foo2' }
- *
- * @see {@link distinct}
- * @see {@link distinctUntilChanged}
- *
- * @param {string} key String key for object property lookup on each item.
- * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.
- * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified.
- * @method distinctUntilKeyChanged
- * @owner Observable
- */
- function distinctUntilKeyChanged(key, compare) {
- return distinctUntilChanged_1.distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
- }
- exports.distinctUntilKeyChanged = distinctUntilKeyChanged;
- //# sourceMappingURL=distinctUntilKeyChanged.js.map
|