码迷,mamicode.com
首页 > 编程语言 > 详细

数组去重的三种方法

时间:2016-05-22 23:07:58      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:

 

arr = [1,1,2,3,2,1,2,3,4,5,1,2,3,4,5];

方法一:

1.先将数组排序 —> arr.sort();

2.循环数组,从第0项开始比较当前项与下一项的大小,如果两者相等,则删除数组中的当前项 —> arr.splice(开始位置,删除个数);

3.删除之后还要从删除的当前项[i]开始进行比较 —> i--;

var arr = [1,1,2,43,3,2,1,2,3,4,5,1,2,3,4,5];
    arr.sort();
    for(var i = 0; i < arr.length; i++){
        if(arr[i] == arr[i+1]){
             arr.splice(i,1);
              i -- ;
         }
    }

 

方法二:

1.新建数组arr2, 循环当前数组arr

2.从arr的第0项开始,看arr2 中是否存在相同的数 —> 函数findInArr(n,arr)

3.如果没有相同的数,则把arr的当前项push到arr2中 —> arr.push();

function findInArr(n,arr){
  for(var i = 0; i < arr.length; i++){
          if(arr[i] == n) return true;
     }
     return false;
 }
 var arr = [1,1,2,4,3,2,1,2,3,4,5,1,2,3,4,5];
    var arr2 = [];
    for(var i = 0; i < arr.length; i++){
        if(!findInArr(arr[i],arr2)){
             arr2.push(arr[i]);
        }
    }

 

方法三:

1.定义一个空数组和一个空json;

2.循环数组,将arr中的每一项变成json的name值 ,并且将每一项赋值为‘a‘

   json{‘1‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘43‘:‘a‘, ‘3‘:‘a‘, ‘2‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘3‘:‘a‘, ‘4‘:‘a‘, ‘5‘:‘a‘, ‘1‘:‘a‘, ‘2‘:‘a‘, ‘3‘:‘a‘, ‘4‘:‘a‘, ‘5‘:‘a‘ }

3.上一步利用了json替换的特性(json.a = 10),这样相同的项会合并

   json{‘1‘:‘a‘,  ‘2‘:‘a‘, ‘43‘:‘a‘, ‘3‘:‘a‘,  ‘4‘:‘a‘, ‘5‘:‘a‘}

4。将json中每一项的name都push到arr2中

var arr = [1,1,2,43,3,2,1,2,3,4,5,1,2,3,4,5];
     var arr2 =[];
     var json ={};
     for (var i = 0; i < arr.length; i++) {
          json[‘arr[i]‘] = ‘a‘;
     }
     for(name in json){
         arr2.push(name);
     }
  alert(arr2);

数组去重的三种方法

标签:

原文地址:http://www.cnblogs.com/fengna/p/5518020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!