JS 数组去重的四种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 数组去重的四种方法相关的知识,希望对你有一定的参考价值。

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 数组去重的四种方法的主要内容,如果未能解决你的问题,请参考以下文章

JS 数组去重的四种方法

js数组去重的四种方法

js数组去重的方法

js中数组去重方法总结

数组去重的5种方法

JS数组去重的方法汇总