js数组去重方法大全
小叙:
javascript数组去重是我们经常会遇到的问题,总结起来一共有四种方法,废话少说,直接来干货:
一、最简单的一种通过ES6中的Set()去重:
let ary = [2,3,4,8,7,5,4, 2, 2, 1, 2, 32, 1],
let newary=Array.from(new Set(ary));
consolo.log(newary);
二、通过indexOf方法实现:
var arr=[1,4,4,6,6,7,8,9,9,,2,6,7,2];
function quchong(arr){
var newarr=[];
for (var i = 0; i < arr.length; i++) {
if(newarr.indexOf(arr[i])==-1){
newarr.push(arr[i]);
}
}
return newarr;
}
quchong(arr);
因为indexOf会返回元素第一次出现的未知的索引,所以也可以通过如下方法来判断:
var arr=[1,4,4,6,6,7,8,9,9,,2,6,7,2];
function quchong(arr){
var newarr=[];
for (var i = 0; i < arr.length; i++) {
if(arr.indexOf(arr[i])==i){
newarr.push(arr[i]);
}
}
return newarr;
}
quchong(arr);
数组indexOf()方法的具体用法大家可以去w3cschool上边查看;
三、通过对象的健值对去重,原理是对象只能有唯一的属性名,不能重复:
function quchong(arr){
let obj = {};
let newarr=[];
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj.arr[i]==1;
newarr.push(arr[i])
}
}
return finalResult;
}
四、通过排序比较法实现:
let arr=[1,2,3,3,3,4,6,7,1,8,9,3];
function quchong(arr){
arr.sort();
let newarr=[];
newarr[0]=arr[0]
for(let i=1;i<arr.length;i++){
if(newarr[newarr.length-1]!=arr[i]){
newarr.push(arr[i]);
}
}
return newarr;
}
quchong(arr);
数组去重的方法还有还多,不局限于以上四种,希望大家都能掌握。