1、ES6的Set方法
function unique(arr){ return Array.from(new Set(arr)) } console.log(unique([1,1,2,2,3,3,4,4])) //[1,2,3,4]
2、最常用使用for循环
function unique(arr){ for(var i = 0; i < arr.length; i++) { for(var j = i+1; j < arr.length; j++) { if(arr[i] == arr[j]){ arr.splice(j,1) j--; } } } return arr }
unique([1,1,2,2,3,3,4,4]) //[1,2,3,4]
3、利用indexOf方法
function unique(arr){ var temp = []; for(var i = 0; i < arr.length; i++){ if(temp.indexOf(arr[i]) === -1){ temp.push(arr[i]) } } return temp } console.log(unique([1,1,2,2,3,3,4,4])) //[1,2,3,4]
4、利用sort方法
function unique(arr){ arr = arr.sort(); var array = [arr[0]] for(var i = 1; i < arr.length; i++){ if(arr[i] != arr[i-1]){ array.push(arr[i]) } } return array } unique([1,2,3,4,1,2,3,4]) //[1,2,3,4]
5、ES6的includes方法
function unique(arr){ var array = []; for(var i = 0; i < arr.length; i++){ if(!array.includes(arr[i])){ array.push(arr[i]) } } return array } unique([1,1,2,2,3,3,4,4]) //[1,2,3,4]
6、暂时这么多,后续补充