
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咱們照樣搞定~ 收工!