在javascript中,我們經常需要處理數組中的元素,而在實際的操作中,常常會遇到重復元素的問題。對于這種情況,我們通常需要使用數組去重操作。本文將介紹Javascript中常用的數組去重方法,并對其進行詳細的講解。
方法一:利用filter()函數
var arr = [1,1,2,2,3,4,4,5]; var newArr = arr.filter(function(element,index,self){ return self.indexOf(element) === index; }); console.log(newArr); // [1, 2, 3, 4, 5]
這里用到了filter()函數,它接受一個callback函數作為參數。callback函數的回調參數分別為元素、元素索引和原數組本身。
具體實現就是利用indexOf()方法判斷當前元素是否是第一次出現,保留第一次出現的元素,去掉重復出現的元素。
方法二:利用Set()函數
var arr = [1,1,2,2,3,4,4,5]; var set = new Set(arr); var newArr = Array.from(set); console.log(newArr); // [1, 2, 3, 4, 5]
這里用到了ES6新增的Set()函數。Set()函數接受一個數組作為參數,可以去掉數組中的重復元素。
最后通過Array.from(set)方法將Set對象轉換為數組,即可得到一個去重后的數組。
方法三:利用reduce()函數
var arr = [1,1,2,2,3,4,4,5]; var newArr = arr.reduce(function(prev,cur){ if(prev.indexOf(cur) === -1){ prev.push(cur); } return prev; },[]); console.log(newArr); // [1, 2, 3, 4, 5]
這里用到了reduce()函數,它將數組中的每個元素通過callback函數進行處理,并返回一個累計值。
具體實現即利用indexOf()方法判斷當前元素是否已存在于累計值中,如果不存在則將其添加進去。
綜上,以上三種方法都可以去除javascript數組中的重復元素。具體使用方法可根據實際需求進行選擇。在實際開發中,建議使用ES6新增的Set()函數進行數組去重,因為它的運行效率更高。