javascript
的Array
提供了另一個func
~ filter
const result = [1, 2, 3, 4, 5].filter((val) => val > 3);
console.log(result); // 印出[4,5]
RxJS filter
RxJS
的filter
的定義:用法與Array.filter()
一樣,在filter
中使用一個func
來定義你的條件式。import { filter, from } from 'rxjs';
// Case1: RxJS filter()
console.log('=== RxJS filter() ===');
from([1, 2, 3, 4, 5])
.pipe(filter((val) => val > 3))
.subscribe(console.log);
// 印出
// 4
// 5
Enter
,就馬上印出來!// Case2: RxJS filter Keyboard event
fromEvent(document, 'keyup') //<-- (1)keyup event
.pipe(
map((event: KeyboardEvent) => event.code), // (2) get code
filter((code) => code === 'Enter') // (3) filter code with "Enter"
)
.subscribe(console.log);
// 輸出:(按下Enter後)
// Enter
// Enter
// ...
// Enter
fromEvent
: 擷取鍵盤的值
map
: 拆解KeyboardEvent
中的code
filter
: 過濾code
,直到code==='Enter'
,就發出訊號通知RxJS filter
與Array.filter
的使用方法依樣,設定好條件式,就能過濾出我們要的資訊。
RxJS filter
與map
很常搭配一起使用。
相信今天的例子,對大家來說就像一片小蛋糕一樣~ Easy啦! day13咱們照樣搞定~ 收工!