JavaScript常用8种数组去重代码实例
在我们学习和使用JavaScript的中,会经常使用到数组的去重,接下来的内容,来给大家分享一下,我们在开发过程中,常用到的数组去重方法,这些方法都是有在实战中真实实践过的,非常值得大家学习和收藏,我们一起来看看都有哪些方法吧!
1.利用对象的属性
使用对象属性不重名的特性。
vararr=['qiang','ming','tao','li','liang','you','qiang','tao'];
console.time("nonredundant1");
varnonredundant1=Object.getOwnPropertyNames(arr.reduce(function(seed,item,index){
seed[item]=index;
returnseed;
},{}));
console.timeEnd("nonredundant1");
console.log(nonredundant1);
结果如下:
2.使用Set数据结构
set是一种类似数组的结构,但是set成员中没有重复的值。set()函数可以接受一个数组或者类数组的参数,生成一个set对象。而Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-likeobject和可遍历iterable)的对象包括ES6新增的数据结构Set和Map)。
vararr=['qiang','ming','tao','li','liang','you','qiang','tao'];
functionunique(arr){
returnArray.from(newSet(arr))
}
console.time("nonredundant2");
varnonredundant2=unique(arr);
console.timeEnd("nonredundant2");
console.log(nonredundant2);
结果如下:
3.使用for循环和splice
functionunique(arr){
for(vari=0;i
结果如下:
4.使用indexOf判断去重
functionunique(arr){
vararray=[];
for(vari=0;i
结果如下:
5.使用sort排序去重
functionunique(arr){
arr=arr.sort()
vararrry=[arr[0]];
for(vari=1;i
结果如下:
6.使用filter
functionunique(arr){
varobj={};
returnarr.filter(function(item,index,arr){
returnobj.hasOwnProperty(typeofitem+item)?false:(obj[typeofitem+item]=true)
})
}
vararr=['qiang','ming','tao','li','liang','you','qiang','tao'];
console.time("nonredundant6");
varnonredundant6=unique(arr);
console.timeEnd("nonredundant6");
console.log(nonredundant6);
结果如下:
7.使用Map数据结构去重
functionunique(arr){
letmap=newMap();
letarray=newArray();//数组用于返回结果
for(leti=0;i
结果如下:
8.使用reduce和include去重
functionunique(arr){
returnarr.reduce((prev,cur)=>prev.includes(cur)?prev:[...prev,cur],[]);
}
vararr=['qiang','ming','tao','li','liang','you','qiang','tao'];
console.time("nonredundant8");
varnonredundant8=unique(arr);
console.timeEnd("nonredundant8");
console.log(nonredundant8);
结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。