1、indexof去重方法
遍歷數組,建立新數組,利用indexOf判斷是否存在於新數組中,不存在則push到新數組,最后返回新數組
function remove(arr) { var temp = []; //建立一個臨時數組 for(var i = 0;i < arr.length;i++){ if (temp.indexOf(arr[i]) === -1){//如果臨時數組里面沒有這個數就把這個數存進去 temp.push(arr[i]); } } return temp; } var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2]; console.log(remove(arr1));
2、先將原數組排序,在與相鄰的進行比較,如果不同則存入新數組。
function remove(arr) { var newArr = arr.sort();//先排序 var temp = []; for(var i = 0;i < newArr.length;i++){ if (newArr[i] !== newArr[i+1]){ temp.push(newArr[i]); } } return temp; } var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2]; console.log(remove(arr1));
3、數組下標法
如果當前數組的第i項在當前數組中第一次出現的位置不是i, 那么表示第i項是重復的,忽略掉。否則存入結果數組。
function remove(arr) { var temp = []; for(var i = 0;i < arr.length;i++){ //如果當前數組的第i項在當前數組中第一次出現的位置是i if (arr.indexOf(arr[i]) === i){ temp.push(arr[i]); } } return temp; } var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2]; console.log(remove(arr1));
4、利用ES6中的set方法
function remove(arr){
//Set數據結構,它類似於數組,其成員的值都是唯一的
return Array.from(new Set(arr));// 利用Array.from將Set結構轉換成數組
} var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2]; console.log(remove(arr1));
