当前位置: 代码迷 >> 综合 >> JS数组去重 实用的四种方法
  详细解决方案

JS数组去重 实用的四种方法

热度:33   发布时间:2023-10-01 04:19:51.0

1、利用对象的属性去重

思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复

function unique(arr){var res =[];var json = {};for(var i=0;i<arr.length;i++){if(!json[arr[i]]){res.push(arr[i]);json[arr[i]] = 1;}}return res;
}console.log(unique([1,2,3,4,6,4,5,1])); // [1,2,3,4,6,5]

 

2、利用下标查询

function unique(arr){var newArr = [arr[0]];for(var i=0;i<arr.length;i++){if(newArr.indexOf(arr[i]) == -1){newArr.push(arr[i]);}}return newArr;
}console.log(unique([1,2,3,4,5,6,1,2,3])); // [1,2,3,4,5,6]

3、利用排序方法

function unique(arr){var newArr = arr.sort(); // [1,1,2,2,3,3,4,5,6]var result = [];for(var i=0;i<newArr.length;i++){if(result[result.length-1] != newArr[i]){result.push(newArr[i]);}}return result;
}console.log(unique([1,2,3,4,5,6,1,2,3])); // [1,2,3,4,5,6]

4、利用ES2015/ES6的 Set和Array.from()

function unique(arr){var obj = new Set(arr); // 返回一个对象var newArr2 = Array.from(obj); // 返回一个新数组return newArr2;
}console.log(unique([1,2,3,4,5,6,6,5,4])); // [1,2,3,4,5,6]

 

  相关解决方案