Skip to content

[javascript] filter用法與移除陣列中重複的元素

Published: at 12:56 PM (2 min read)

javascript 中的 filter 函式,可以幫助我們過濾一個陣列中符合條件的元素,若不符合則刪除。不更改原陣列,而回傳新陣列。

filter 函式,接受一個 callback 函式,callback 可以有三個參數(element, index, array),

比如說要過濾陣列中值小於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

http://larry850806.github.io/2016/07/16/JS-tips/