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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。