distinctUntilKeyChanged
function stable operator
Возвращает Observable, который испускает все элементы, испускаемые исходным Observable, которые отличаются по сравнению с предыдущим элементом, используя свойство, доступное с помощью предоставленного ключа для проверки, являются ли два элемента различными.
distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction<T>
Параметры
key |
keyof T |
Возвращает
distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction<T>
Параметры
key |
K |
|
compare |
(x: T[K], y: T[K]) => boolean |
Возвращает
Описание
Если функция сравнения предоставлена, она будет вызываться для каждого элемента, чтобы проверить, должен ли этот элемент быть испущен или нет.
Если функция сравнения не предоставлена, по умолчанию используется проверка на равенство.
Примеры
Пример сравнения имени человека
import { of, distinctUntilKeyChanged } from 'rxjs';
of(
{ age: 4, name: 'Foo' },
{ age: 7, name: 'Bar' },
{ age: 5, name: 'Foo' },
{ age: 6, name: 'Foo' }
).pipe(
distinctUntilKeyChanged('name')
)
.subscribe(x => console.log(x));
// displays:
// { age: 4, name: 'Foo' }
// { age: 7, name: 'Bar' }
// { age: 5, name: 'Foo' }
Пример сравнения первых букв имени
import { of, distinctUntilKeyChanged } from 'rxjs';
of(
{ age: 4, name: 'Foo1' },
{ age: 7, name: 'Bar' },
{ age: 5, name: 'Foo2' },
{ age: 6, name: 'Foo3' }
).pipe(
distinctUntilKeyChanged('name', (x, y) => 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' }
См. также
© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/distinctUntilKeyChanged