Mathematical and Aggregate Operators
count
計算 Observable 裡符合條件的資料筆數
使用介面
count(predicate: function(value: T, i: number, source: Observable<T>): boolean): Observable
使用範例
Observable.from([1, 2, 3, 4, 5, 6])
.count(x => x % 3 == 0)
.subscribe(value => console.log(value)); // 輸出: 2
max
取出 Observable 資料內最大值
使用介面
max(comparer: Function): Observable
使用範例
Observable.of(5, 4, 7, 2, 8)
.max()
.subscribe(x => console.log(x)); // 輸出: 8
interface Person {
age: number,
name: string
}
Observable.of<Person>({age: 7, name: 'Foo'},
{age: 5, name: 'Bar'},
{age: 9, name: 'Beer'})
.max<Person>((a: Person, b: Person) => a.age < b.age ? -1 : 1)
.subscribe((x: Person) => console.log(x.name)); // 輸出: 'Beer'
}
min
取出 Observable 資料內最小值
使用介面
min(comparer: Function): Observable<R>
使用範例
Observable.of(5, 4, 7, 2, 8)
.min()
.subscribe(x => console.log(x)); // 輸出: 2
interface Person {
age: number,
name: string
}
Observable.of<Person>({age: 7, name: 'Foo'},
{age: 5, name: 'Bar'},
{age: 9, name: 'Beer'})
.min<Person>((a: Person, b: Person) => a.age < b.age ? -1 : 1)
.subscribe((x: Person) => console.log(x.name)); // 輸出: 'Foo'
}
reduce
計算 Observable 資料完成後,一次輸出。適用於會結束的 observable
使用介面
reduce(accumulator: function(acc: R, value: T, index: number): R, seed: R): Observable<R>
使用範例
Observable.from([1, 2, 3, 4, 5, 6])
.reduce((acc, one) => acc + one, 0)
.subscribe(value => console.log(value)); // 輸出: 21