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

JS 数组去重的四种方法

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

标签:去重   false   bsp   uniq   nbsp   new   []   index   四种   

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 数组去重的四种方法

标签:去重   false   bsp   uniq   nbsp   new   []   index   四种   

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

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