js---去重方法(一)
1.遍历数组法
最简单的去重方法,实现思路:新建一个数组,遍历传入数组,值不在新数组就加入该新数组
注意点:判断值是否在数组的方法indexOf是ES5方法
function unique(array){ var n = [];//一个新的临时数组 //遍历当前数组 for(var i = 0;i < array.length;i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(n.indexOf(array[i])==-1){ n.push((array[i])) } } return n; } var array = [1,2,1,2,1,2,1,2,1,1]; console.log(unique1(array)) // 1 2
2 利用for嵌套for ,然后splice去重
function unique(array){ for (var i = 0;i<array.length;i++) { for (var j = i + 1;j<array.length;j++) { if(array[i]==array[j]){ array.splice(j,1); j--; } } } return array } var array = [1,2,3,2,2,3,9,4] console.log(unique(array)) // 1 2 3 9 4
3 利用ES6 Set去重
function unique(array){ // return Array.from(new Set(array)) // 雷同 [... new Set(array)] return [... new Set(array)] } var array = [1,2,3,1,2,3]; console.log(unique(array)); // 1 2 3
4.利用sort()排序方法 ,然后根据排序后的结果进行遍历及相邻元素比对
function unique(arr){ if(!Array.isArray(arr)){ return } 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 } var arr = [1,2,3,1,2,3]; console.log(unique(arr)) // 1 2 3
5 利用 includes 检测数组是否有某个值
function unique(arr){ if(!Array.isArray(arr)){ return } var array = []; for(var i = 0;i<arr.length;i++){ if(!array.includes(arr[i])) array.push(arr[i]) } return array } var arr = [1,2,3,1,2,3] console.log((unique(arr))) // 1 2 3