一.ES6中set方法:[...new Set(arr)]
var arr1 = [1,2,2,3,3,4,5,5]; [...new Set(arr1)].toString()
二.遍歷數組,創建新數組,利用indexOf()判斷是否存在於新數組中,不存在則push到新數組,最後返回新數組
var arr2 = [1,2,2,2,3,3,4,4,5,5]; function removeSame(arr){ var ret = []; for(var i=0,j=arr.length;i<j; i++){ if(ret.indexOf(arr[i]) === -1){ ret.push(arr[i]) } } return ret; }
三.遍歷數組,利用object對象保存數組值,判斷數組值是否已經保存在object中,未保存則push到新數組並用object[arrayItem]=1的方式記錄保存
var arr3 = [1,2,2,2,3,3,4,4,5] function removeSame(arr){ var temp = {},ret = []; for (var i = 0,j=arr.length;i<j;i++){ //debugger; console.log(temp[arr[i]]); if(!temp[arr[i]]){ temp[arr[i]] = 1; ret.push(arr[i]) } } return ret; }
四.根據數組下標判斷法, 遍歷數組,利用indexOf()判斷元素的值是否與當前索引相等,如相等則加入
var arr4 = ["apple","apple","orange","orange","banana"] function removeSame(arr){ var ret = []; arr.forEach(function(ele,index){ if(arr.indexOf(ele) == index){ ret.push(ele) } }) return ret; }
五.數組先進行排序,而後比較原數組與新數組,一頭一尾進行去重
var arr5 = ["apple","apple","orange","orange","banana"] function removeSame(arr){ var ret = [],end; debugger; arr.sort(); // ["apple","apple","banana","orange","orange",]; end = arr[0]; ret.push(arr[0]); for(var i = 1; i<arr.length; i++){ if(arr[i] != end){ ret.push(arr[i]); end = arr[i]; } } return ret; }