这篇文章将为大家详细讲解有关javascript中数组去重常用方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联主要从事网站设计制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务明山,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
具体如下:
数组去除重复值是面试常考内容,也是很容易用到的一个技巧,下面就几种去重的方法进行介绍。
首先是最常见的方法,也就是添加一个临时数组,将原数组遍历,加入临时数组,每次加入时判断待加入的元素是否存在于临时数组中,代码如下:
// 对数组进行去重操作,只考虑数组中元素为数字或字符串,返回一个去重后的数组 //第一种方法,遍历,将没有的插入临时数组 function uniqArray1(arr) { var n=[]; for(var i=0;i那么还有没有更好的办法呢?可以采用哈希表的思想,在JavaScript中,对象的查找比数组下标的查找要快很多倍。所以我们可以创建一个对象专门来存放已加入临时数组的元素,那么每次加入新的元素时就可以通过查找对象来判断是否重复了,代码如下:
//第二种方法,使用哈希表 function uniqArray2(arr){ var n={},//哈希表 r=[];//零时数组 for(var i=0;i还有一种方法,虽然速度没有哈希表快,但是比最基本的indexOf来的快,思想就是先经过排序函数sort,再比较相邻的元素,不同的就加到临时数组中。代码如下:
//第三种方法,先排序,再比较邻接部分 function uniqArray3(arr){ arr.sort(); var r=[arr[0]]; for(var i=1;i最后实验代码如下:
//验证数组去重函数的使用 var arr=[2,3,4,2,4,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]; for(var i=0;i<10000000;i++){//为了分辨出花费时间的区别,特此增加数组的长度 arr.push(3); } var time1=Date.now(); var n1=uniqArray1(arr); var time2=Date.now(); console.log(n1);//2,3,4,5说明第一种去重成功 console.log(time2-time1);//218 time1=Date.now(); var n2=uniqArray2(arr); time2=Date.now(); console.log(n2);//2,3,4,5说明第二种去重成功 console.log(time2-time1);//63,说明对象下标的引用要比indexOf搜索快得多 time1=Date.now(); var n3=uniqArray3(arr); time2=Date.now(); console.log(n3);//2,3,4,5说明第三种去重成功 console.log(time2-time1);//203,说明sort方法使用快排,比indexOf快,但是没有哈希快可以看到哈希算法的速度是最快的。
关于“javascript中数组去重常用方法有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
新闻名称:javascript中数组去重常用方法有哪些
分享网址:http://njwzjz.com/article/jjdhod.html