首页 > 编程语言 > 详细

JS 数组去重的四种方法

时间:2017-08-01 20:26:24      阅读:286      评论:0      收藏:0      [点我收藏+]

1、通过遍历原数组和新数组是否重复。new一个新数组存放已经遍历过的、唯一的元素。

function uniqueArr(list){

  var newArr= [list[0]];

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

    var isRepeat = false;

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

      if(list[i] == newArr[j]){

        isRepeat= true;

        break;

      }

    }

    if(!isRepeat){

      newArr.push(list[i]);

    }

  }

  return newArr;

}

var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];

uniqueArr(arr);         //output:["a", "b", "c"]

 

2、通过先排序,再与相邻的元素进行比较去重(排序之后相同的元素会相邻)

function uniqueArr(list){

  list.sort();//对数组进行排序

  var newArr= [];

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

    if(list[i]!=list[i+1])    newArr.push(list[i]);

  }

  return newArr;

}

var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];

uniqueArr(arr);         //output:["a", "b", "c"]

3、新建一个对象进行存放,再遍历数组,判断对象是否存在该值(obj[i])

function uniqueArr(list){

  var obj= {},newArr=[list[0]];

  obj[list[0]]=true;

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

    if(!obj[list[i]]){

      obj[list[i]]=true;

      newArr.push(list[i]);

    }

  }

  return newArr;

}

var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];

uniqueArr(arr);         //output:["a", "b", "c"]

4、通过indexOf进行判断(新建一个数据存放唯一的元素,遍历原数组判断(newArr.indexOf(oldArr[i])==-1))

function uniqueArr(list){

  var newArr=[list[0]];

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

    if(newArr.indexOf(list[i])==-1){

      newArr.push(list[i]);

    }

  }

  return newArr;

}

var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];

uniqueArr(arr);         //output:["a", "b", "c"]

JS 数组去重的四种方法

原文:http://www.cnblogs.com/ducky-L/p/7266383.html

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