最近被多次问到数组去重的方式,也百度了一下网络上的一些写法,综合了一下,主要介绍。
//方法1:正常的先排序,然后先后对比
let a = [1,2,3,4,4,5,6];
function fun1(arr){
let result = [];
arr.sort();
for(let i = 0;i<arr.length;i++){
if(arr[i] != arr[i+1]){
result.push(arr[i])
}
}
console.log(result)
return result;
}
fun1(a);
//方法2:使用对象去重
function fun2(arr){
let result = [];
let obj = {};
for(let i = 0;i<arr.length;i++){
if(!obj[arr[i]]){
result.push(arr[i])
obj[arr[i]] = true;
}
}
console.log('fn2',result)
return result;
}
fun2(a);
//通过es6 去重
let array = Array.from(new Set(a));
/* 写法等同 */
let array = [...new Set(a)]
console.log(array);
//通过使用filter 配合indexOf
let ar = [];
ar = a.filter((item,index,self)=>{
return self.indexOf(item) === index
})
console.log('ar', ar)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。