filter方法接受兩個參數:1、一個回呼函數,不可省略,用於設定條件來過濾數組元素,並傳回數組中滿足條件的元素,語法「function(當前值,當前索引,陣列物件){...}”;2、一個可選參數,可在回呼函數中為其用this關鍵字的物件。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
filter() 方法建立一個新的數組,新數組中的元素是透過檢查指定數組中符合條件的所有元素。
簡單來講: filter() 方法可以傳回陣列中符合指定條件的元素。
filter() 方法接受兩個參數:
array.filter(callbackfn[, thisArg]);
callbackfn:回呼函數,不可省略,用於設定條件來過濾陣列元素,最多接受3個參數,語法:
function(currentValue, index,arr)
currentValue 必須。目前元素的值
index 可選。目前元素的索引值
arr 可選。目前元素屬於的陣列物件
對於陣列中的每個元素,filter 方法都會呼叫 callbackfn 函數一次。
thisArg:可選參數,可在 callbackfn 函數中為其用 this 關鍵字的物件。如果省略 thisArg,則 undefined 將用作 this 值。
傳回值是一個包含回呼函數為其傳回 true 的所有值得新陣列。如果回呼函數為 array 的所有元素傳回 false,則新陣列的長度為 0。
對於陣列中的每個元素,filter 方法都會呼叫 callbackfn 函數一次(採用升序索引順序)。不為數組中缺少的元素呼叫該回呼函數。回呼函數的用法與 map 相同。
除了陣列物件之外,filter 方法可由具有 length 屬性,且具有已按數字編制索引的屬性名的任何物件使用。
範例1:篩選出陣列中的質數
var a = [31,33,35,37,39,41,43,45,57,49,51,53]; var a1 = a.filter(function(value, index, ar) { high = Math.floor(Math.sqrt(value)) + 1; for (var div = 2; div <= high; div ++) { if (value % div == 0) { return false; } } return true; } ); console.log(a1);//31,37,41,43,53 </script>
#範例2:過濾掉陣列中在指定範圍外的元素
var f = function (value) { if (typeof value !== 'number'){ return false; } else { return value >= this.min && value <= this.max; } } var a = [6, 12, "15", 16, "the", -12]; var obj = {min : 10, max : 20}; var r = a.filter(f, obj); console.log(r); //12,16
【相關推薦:javascript影片教學、web前端】
以上是es6 filter方法的參數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!