利用JavaScript的object的特性,我们可以非常容易的实现将一个数组的重复项去掉。
object的特性是:key一定是唯一的。
把数组重复项去掉:
1 将数组转换成一个object对象,数组的值作为object对象的 key
因为key是唯一的,碰到重复的数组值的时候,object不会添加key
2 将object对象转换成数组,key为数组的值。
在之前的重复数组,每一个值实际上对应object只有一个key,这样在还原到数组的时候,重复值就去掉了
<script> /*用object的特性去掉数组的重复项: 1 把数组转化成oject对象,用数组的值当作obj的key 2 把object再转换成数组 */ // 传入数组 返回object对象 var toObj = function( arr ){ obj = {}; for(var temp in arr){ //对arr的每一个值添加到obj的key,value都是true obj[arr[temp]] = true; } return obj; }; // 传入obj对象 返回arr数组 var toArr = function( obj ){ var arr = []; for(var temp in obj){ //把所有的key push到数组当中 arr.push(temp); } return arr; }; //把两个方法联合起来 var getUniq = function(arr){ return toArr( toObj(arr) ); }; var arr = [1,1,2,2,3,3,4,4,5,5,5,6,6,6,6,6,6,5,4,3,54,8,11]; console.log(getUniq(arr)); </script>
使用在线HTML/CSS/JavaScript代码运行工具:,运行结果如下:
PS:这里再为大家提供几款相关工具供大家参考使用:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》