本文阐述了JS基于基于对象的特性实现了数组中重复项的删除功能。分享给大家参考,如下:
阵列重复数据消除的方法很多,不同方法的效率不同。例如,在上一篇文章中JS实现的阵列重复数据删除算法的总结中,总结分析了四种实现方法。介绍了一种高效的数组去重方法:根据JS对象的特点,介绍了数组中重复项的去除方法。
1.JS对象的特性(本文使用的特性):key总是唯一的
示例:解释对象键值的唯一性,即当js的现有属性被重新赋值时,它实际上覆盖了键,而不是创建新的键
Var t={姓名: '张三',年龄:20 };//定义一个js对象console . log(t . name);//控制台输出:张三//注意:此时对象T有两个属性:name和aget.name='李四';console . log(t . name);//控制台输出:李四//注意:此时,对象T仍有两个属性:名称、年龄II、阵列重复数据删除步骤解析
分为两步:
1.将要消除重复数据的阵列转换为js对象并返回。转换规则:将数组中的值改为js对象中的键,然后将该值赋给任意值;
2.将步骤1中的对象还原到一个数组中,并使用该对象的键作为数组中的元素。
第三,实施阵列重复数据消除
var arr=[1,2,3,4,5,23,4,2,4,3];//1.用对象替换数字程序集,将数组的元素作为对象的键,然后将对象函数返回给object(AC _ array){ varobj={ };//的私有对象(var I=0;iac _ array.lengthI){ obj[AC _ array[I]]=true;} console . log(obj);//Object {1: true,2: true,3: true,4: true,5: true,23: true } return obj}//2.获取对象的键作为数组的元素,然后返回数组功能键(AC _ obj){ var arr=[];for(AC _ obj中的var item){ if(AC _ obj . hasown property(item)){ arr . push(item);} } console . log(arr);//['1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 23']返回arr}//集成函数uniq(AC _ array){返回键(to object(AC _ array));}//test var uniq _ array=uniq(arr);console . log(uniq _ array);//['1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 23']代码测试结果:
雅虎YUI框架的底层代码中也使用了这种利用js对象键的唯一性来消除数组重复的方法。感兴趣的小火把可以对准它。
附言:在这里,我们将为您提供几种重复数据消除工具,供您参考:
在线重复数据消除工具:http://tools.jb51.net/code/quchong
在线文本重复数据消除工具:http://tools.jb51.net/aideddesign/txt_quchong
更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010
希望本文对JavaScript编程有所帮助。