手机版

JS实现的阵列重复数据消除算法概述

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

本文通过一个实例描述了JS实现的阵列重复数据删除算法。分享给大家参考,如下:

在JS中,我们经常满足从数组中移除重复数据的需求。本文介绍了实现JS数组去重功能的四种算法。

1.最快的算法:对象键值对方法

实现思想:创建一个新的js对象和一个新的数组。遍历传入数组时,判断该值是否为js对象的键。如果没有,则将该键添加到对象中,并将其放入新数组中。

//注意:判断是否为js对象键时,会对传入键自动执行“toString()”,不同的键可能会误认为是同一个;例如:a[1],a['1']。要解决以上问题,我们还是得叫“indexOf”。//最快,占用空间最多(以空间换时间)函数唯一(array) {var n={},r=[],len=array。长度、值、类型;for(var I=0;i array.lengthI){ val=array[I];typeof val的类型;if(!n[val]){ n[val]=[type];r . push(val);} else if (n[val]。indexOf(类型)0) { n[val]。推送(类型);r . push(val);} }返回r;}//测试代码:var arr=[1,2,3,4,5,29,5,3,1,2];var rel=唯一(arr);console . log(rel);运行结果:

2.最巧妙的算法:优化了遍历数组方法

实现思想:获取最合适的不重复的值,并将其放入一个新数组中。(当检测到重复值时,终止当前周期并进入顶级周期的下一轮)

函数unique1(数组){ var r=[];for(var i=0,l=array.lengthil;I){ for(var j=I ^ 1;j l;j)if(array[I]==array[j])j==I;r.push(数组[I]);}返回r;}//测试代码:var arr=[1,2,3,4,5,29,5,2];var rel=unique 1(arr);console . log(rel);运行结果:

3.算法:排序邻近去除法

实现思路:对传入的数组进行排序,排序后相同的值相邻,然后遍历时,只有不重复前一个值的值才添加到新的数组中。

//邻接相同的值,然后遍历以移除重复的值函数unique 2 (array) {array。sort();var re=[数组[0]];for(var I=1;i array.lengthi ){ if(array[i]!==re[re . length-1]){ re . push(array[I]);} }返回re;}//测试代码:var arr=[1,2,3,4,5,29,5,2,3,1];var rel=unique 2(arr);console . log(rel);运行结果:

4.算法:数组下标判断方法

实现思路:如果ith项在当前数组中的第一个出现位置不是I,说明ith项是重复的,被忽略。否则,将其存储在结果数组中

函数unique 3(array){ var n=[array[0]];//结果数组//从第二项开始遍历(var I=1;i array.lengthI) {//如果ith项在当前数组中的第一个出现位置不是I,//则表示ith项是重复项,被忽略。否则,它存储在结果数组if (array)中。(数组[I])的索引==I) n. push(数组[I]);}返回n;}//测试代码:vararr=[1,2,3,4,5,29,3,4,2,5,1];var rel=unique 3(arr);console . log(rel);运行结果:

附言:在这里,我们将为您提供几种重复数据消除工具,供您参考:

在线重复数据消除工具:http://tools.jb51.net/code/quchong

在线文本重复数据消除工具:http://tools.jb51.net/aideddesign/txt_quchong

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010

希望本文对JavaScript编程有所帮助。

版权声明:JS实现的阵列重复数据消除算法概述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。