在 TypeScript 中過濾陣列
Shuvayan Ghosh Dastidar
2023年1月30日
TypeScript 有一個內建函式 filter()
從陣列中過濾掉元素,建立一個新陣列或給定陣列的子集。
它接受一個謂詞或 callback
函式,該函式貫穿每個陣列元素。那些通過測試的元素由 filter()
方法返回到新陣列中。
TypeScript 中 Filter
函式的語法
filter
函式的語法因使用箭頭函式或 function
關鍵字而異。但是,一般語法保持不變。
filter(callbackFn, thisObj);
引數是 callbackFn
,一個謂詞函式,用於根據特定條件測試元素是否存在於結果陣列中。thisObj
是執行 callbackFn
時用作 this
的值。
該陣列具有 filter
原型以返回結果陣列。
var result = array.filter((element) => {...});
var result = array.filter((element, index) => {...});
var result = array.filter((element, index, arr) => {...});
var result = array.filter(function(element){...});
var result = array.filter(function(element, index){...});
var result = array.filter(function(element, index, arr){...});
callbackFn
接受三個引數,element
、index
和 arr
,其中 index
和 arr
是可選的。
element
表示傳遞給 callbackFn
的當前元素,index
是陣列中元素的當前索引。
同時,如果需要,arr
欄位是陣列本身,以防任何內聯修改。
在 TypeScript 中使用 Filter
函式過濾元素
filter
函式可以過濾掉陣列中的某些元素。
var numbers : number[] = [ 23, 44, 56, 2, 78, 21, 90, 3];
var result = numbers.filter( (num) => num % 2 == 0 );
console.log(result);
輸出:
[44, 56, 2, 78, 90]
在 TypeScript 中使用 Filter
函式搜尋陣列中的元素
filter
函式還可以搜尋陣列中的元素。藉助搜尋查詢,可以形成謂詞。
var strings : string[] = [ "The hen", "A box", "The sun", "The beach"];
var searchQuery = "The"
var startingWithThe = strings.filter( str => str.indexOf(searchQuery) === 0);
console.log(startingWithThe);
輸出:
["The hen", "The sun", "The beach"]
因此以 The
開頭的語句已被過濾掉。