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

数组去重的三种方法

时间:2017-03-21 22:16:25      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:false   lock   als   turn   基本   art   数组去重   function   json   

这篇文章是参考http://www.jb51.net/article/46154.htm

1.最基本的去重方法

思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。

function unique(arr){

  var res = [arr[0]];

  for(var i=1;i<arr.length;i++){

    var repeat = false;

    for(var j=0;j<res.length;j++){

      if(arr[i] == res[j]){

        repeat = true;

        break;

      }

    }

    if(!repeat){

      res.push(arr[i]);

    }

  }

  return res;

}

2.先排序在去重

思路:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

function unique(arr){

  var arr2 = arr.sort();

  var res = [arr2[0]];

  for(var i=1;i<arr2.length;i++){

    if(arr2[i] !== res[res.length-1]){

      res.push(arr2[i]);

    }

  }

  return res;

}

3.利用对象的属性去重(推荐)

思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复

function unique(arr){

  var res =[];

  var json = {};

  for(var i=0;i<arr.length;i++){

    if(!json[arr[i]]){

      res.push(arr[i]);

      json[arr[i]] = 1;

    }

  }

  return res;

}

经过测试以上代码没有什么问题,有问题请指正,谢谢。

数组去重的三种方法

标签:false   lock   als   turn   基本   art   数组去重   function   json   

原文地址:http://www.cnblogs.com/rongy/p/6597014.html

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