首页 > 编程语言 > 详细

数组去重的方法

时间:2020-03-25 11:15:48      阅读:41      评论:0      收藏:0      [点我收藏+]

数组去重方法一:排序后相邻去重法

 1 array=[1,5,9,5,2,7,2,3,6,8,4,7,9,5]
 2 function unique4(array){
 3   array.sort(); 
 4   var re=[array[0]];
 5   for(var i = 1; i < array.length; i++){
 6     if( array[i] !== re[re.length-1])
 7     {
 8       re.push(array[i]);
 9     }
10   }
11   return re;
12 }
13 let arr=unique4(array)
14 console.log(arr);

数组去重方法二:优化遍历数组法     实现思路:获取没重复的最右值放入新数组。

 

 

 1 array=[1,5,9,5,2,7,2,3,6,8,4,7,9,5]
 2 function unique5(array){
 3   var r = [];
 4   for(var i = 0, l = array.length; i < l; i++) {
 5     for(var j = i + 1; j < l; j++)
 6       if (array[i] === array[j]) j = ++i;
 7     r.push(array[i]);
 8   }
 9   return r;
10 }
11 let arr=unique5(array)
12 console.log(arr);

 

数组去重方法三:数组下标判断法    

 1 array=[1,5,9,5,2,7,2,3,6,8,4,7,9,5]
 2 function unique3(array){
 3   var n = [array[0]]; //结果数组
 4   //从第二项开始遍历
 5   for(var i = 1; i < array.length; i++) {
 6     //如果当前数组的第i项在当前数组中第—次出现的位置不是i,
 7     //那么表示第i项是重复的,忽略掉。否则存入结果数组
 8     if (array.indexOf(array[i]) == i) n.push(array[i]);
 9   }
10   return n;
11 }
12 let arr=unique3(array)
13 console.log(arr);

 

数组去重方法四:对象键值对法

 

 1 array=[1,5,9,5,2,7,2,3,6,8,4,7,9,5]
 2 function unique2(array){
 3   var n = {}, r = [], len = array.length, val, type;
 4     for (var i = 0; i < array.length; i++) {
 5         val = array[i];
 6         type = typeof val;
 7         if (!n[val]) {
 8             n[val] = [type];
 9             r.push(val);
10         } else if (n[val].indexOf(type) < 0) {
11             n[val].push(type);
12             r.push(val);
13         }
14     }
15     return r;
16 }
17 
18 let arr=unique2(array)
19 console.log(arr);

 

数组去重的方法

原文:https://www.cnblogs.com/jack-wangsir/p/12564498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!