數組 filter() 是一個內置方法,該方法創建一個新數組,其中的元素遵循或通過給定的標準和條件。為了更好地理解這個概念,下麵實施了一些示例
用法:
var newArray = arr.filter(callback(element[, index[, array]]) [, thisArg])
參數:此方法接受上麵提到的和下麵描述的 2 個參數:
- Callback:該函數是一個謂詞,用於測試數組的每個元素。返回 true 以保留元素,否則返回 false。它接受三個參數:
- element:數組中正在處理的當前元素。
- index(Optional):數組中正在處理的當前元素的索引。
- array(Optional):調用了數組過濾器。
- thisArg(Optional):執行回調時用作 this 的值。
範例1:filter函數過濾數組中所有大於5的數值
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var result = numbers.filter(number => number > 5);
console.log(result);
輸出:
[ 6, 7, 8, 9, 10 ]
範例2:filter 函數過濾數組中所有長度大於 5 的單詞
var words = ["hi", "hello", "hey", "apple", "watermelon",
"lemon", "javascript"];
var result = words.filter(word => word.length > 5);
console.log(result);
輸出:
[ 'watermelon', 'javascript' ]
範例3:filter 函數從數組中過濾掉所有無效的用戶 ID。
var jsonarr = [
{
id:1,
name:"joe"
},
{
id:-19,
name:"john"
},
{
id:20,
name:"james"
},
{
id:25,
name:"jack"
},
{
id:-10,
name:"joseph"
},
{
id:"not a number",
name:"jimmy"
},
{
id:null,
name:"jeff"
},
]
var result = jsonarr.filter(user => user.id > 0);
console.log(result);
輸出:
[{"id":1,"name":"joe"},{"id":20,"name":"james"}, {"id":25,"name":"jack"}]
相關用法
注:本文由純淨天空篩選整理自IshjotSingh97大神的英文原創作品 ES6 | Array filter() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。