在 TypeScript 中過濾陣列

Shuvayan Ghosh Dastidar 2023年1月30日
  1. TypeScript 中 Filter 函式的語法
  2. 在 TypeScript 中使用 Filter 函式過濾元素
  3. 在 TypeScript 中使用 Filter 函式搜尋陣列中的元素
在 TypeScript 中過濾陣列

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 接受三個引數,elementindexarr,其中 indexarr 是可選的。

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 開頭的語句已被過濾掉。

Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website

相關文章 - TypeScript Array