JS如何实现的数组去除重复数据算法

  介绍

这篇文章主要介绍了JS如何实现的数组去除重复数据算法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

JS的作用是什么

1,能够嵌入动态文本于HTML页面。2,对浏览器事件做出响应。3,读写HTML元素。4、在数据被提交到服务器之前验证数据。5,检测访客的浏览器信息。6,控制饼干,包括创建和修改等7,基于node . JS技术进行服务器端编程。

在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功能。

<强> 1。速度最快算法:对象键值对法

<>强实现思路:新建一js对象以及新数组,遍历传入数组时,判断值是否为js对象的键,不是的话给对象新增该键并放入新数组。

//注意点:,判断,是否为js对象键时,会自动对传入的键执行“toString()”,不同的键可能会被误认为一样,例如:,[1],一个(“1“),。解决上述问题还是得调用“indexOf”。//速度最快,占空间最多(空间换时间)   function 独特(数组){   var 才能;n =, {},, r =, [],, len =, array.length,, val,,类型;   for 才能;(var 小姐:=,0;,小姐:& lt;, array.length;,我+ +),{   ,,,val =,数组(我);   ,,,type =, typeof  val;   ,,,if  (! n (val)), {   ,,,,,n (val),=,(类型);   ,,,,,r.push (val);   ,,,},else  if  (n (val) .indexOf(类型),& lt;, 0), {   ,,,,,n (val) .push(类型);   ,,,,,r.push (val);   ,,,}   ,,}   return 才能;r;   }//测试代码:   var  arr=[1、2、3、4、5日,29日,5、3、1、2];   var  rel=独特(arr);   console.log (rel);

运行结果:

 JS如何实现的数组去除重复数据算法

<强> 2。最巧妙算法:优化遍历数组法

<>强实现思路:获取没重复的最右一值放入新数组。(检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断)

function  unique1(数组){   var 才能;r =, [];   ,,(var 小姐:=,0,,l =, array.length;, i

运行结果:

 JS如何实现的数组去除重复数据算法

<强> 3。算法:排序后相邻去除法

<>强实现思路:给传入数组排序,排序后相同值相邻,然后遍历时新数组只加入不与前一值重复的值。

//将相同的值相邻,然后遍历去除重复值   function  unique2(数组){   array.sort才能();   var 才能;re=[array [0]];   ,,(var 小姐:=,1;,小姐:& lt;, array.length;,我+ +){   ,,,如果,[我]数组!==,再保险[re.length-1])   ,,,{   ,,,,,re.push(阵列[我]);   ,,,}   ,,}   return 才能;再保险;   }//测试代码:   var  arr=[1、2、3、4、5日,29日,5日,2,3,1];   var  rel=unique2 (arr);   console.log (rel);

运行结果:

 JS如何实现的数组去除重复数据算法

<强> 4。算法:数组下标判断法

<>强实现思路:强如果当前数组的第我项在当前数组中第一次出现的位置不是我,那么表示我第项是重复的,忽略掉。否则存入结果数组

function  unique3(数组){   var 才能;n =, [array[0]];,//结果数组//才能从第二项开始遍历   ,,(var 小姐:=,1;,小姐:& lt;, array.length;,我+ +),{   ,,,//如果当前数组的第我项在当前数组中第一次出现的位置不是我,   ,,,//那么表示我第项是重复的,忽略掉。否则存入结果数组   ,,,if  (array.indexOf(数组[我]),==,我),n.push(阵列[我]);   ,,}   return 才能;n;   }//测试代码:   var  arr=[1、2、3、4、5日,29日,3、4、2、5、1];   var  rel=unique3 (arr);   console.log (rel);

运行结果:

 JS如何实现的数组去除重复数据算法

JS如何实现的数组去除重复数据算法