array1.filter(callbackfn[, thisArg])
備註
filter 方法會針對陣列中的每個元素各呼叫 callbackfn 函式一次 (以遞增索引順序)。 回呼函式會略過陣列中遺漏的元素。
除了陣列物件之外,任何具有 length 屬性且具有數值索引屬性名稱的物件都可以使用 filter 方法。
回呼函式語法
回呼函式的語法如下:
function callbackfn(value, index, array1)
您最多可以使用三個參數宣告回呼函式。
下表列出回呼函式參數。
回呼引數 |
定義 |
---|---|
value |
陣列元素的值。 |
index |
陣列元素的數值索引。 |
array1 |
包含元素的陣列物件。 |
修改陣列物件
filter 方法不會直接修改原始陣列,但是回呼函式可以修改。 下表顯示啟動 filter 方法後修改陣列物件的結果。
filter 方法啟動後的狀況。 |
元素是否會傳遞至回呼函式? |
---|---|
在超出陣列原始長度的位置加入元素。 |
否。 |
加入的元素會填補至陣列中有遺漏元素的位置。 |
是 (如果該索引尚未傳遞至回呼函式的話)。 |
元素已變更。 |
是 (如果該元素尚未傳遞至回呼函式的話)。 |
從陣列中刪除元素。 |
否 (除非該元素已傳遞至回呼函式)。 |
在下列範例中,callbackfn 引數包含回呼函式的程式碼。
// Create the original array. var arr = [5, "element", 10, "the", true]; // Create an array that contains the string // values that are in the original array. var result = arr.filter( function (value) { return (typeof value === 'string'); } ); document.write(result); // Output: element, the