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

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

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

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

Leave a Reply to a556622822 Cancel reply

Your email address will not be published. Required fields are marked *