javascript 中的 filter 函式,可以幫助我們過濾一個陣列中符合條件的元素,若不符合則刪除。不更改原陣列,而回傳新陣列。
filter 函式,接受一個 callback 函式,callback 可以有三個參數(element, index, array),
- element:陣列元素的值。
- index:陣列元素的所在位置。
- arr:已經過 filter 處理的陣列
比如說要過濾陣列中值小於10的元素
var numbers = [20, 10, 9, 25, 1, 3, 8, 11];
var result = numbers.filter(function (element, index, arr) {
return element >= 10;
});
console.log(result); // [20, 10, 25, 11]
callback 中,回傳 false 的元素將會被移除,但注意元陣列並未改變,而是回傳新陣列。
利用這個函式,我們可以使用在過濾陣列中重複的元素
var array = ["a", 1, 2, 3, 2, 3, "b", "a"];
var result = array.filter(function (element, index, arr) {
return arr.indexOf(element) === index;
});
console.log(result);
// ["a", 1, 2, 3, "b"]
這樣就可以簡單又快速地快濾重複的元素~
參考資料:
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/filter