1. 程式人生 > >JS 數組去重的四種方法

JS 數組去重的四種方法

new return obj 元素 數組去重 != lis 相同 break

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 數組去重的四種方法