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

數組去重的四種方法

push 進行 一個 turn ++ cti 第一個 arr 元素

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;

}

4.利用下標查詢

function unique(arr){
  var newArr = [arr[0]];

   for(var i=1;i<arr.length;i++){
    if(newArr.indexOf(arr[i]) == -1){
   newArr.push(arr[i]);
   }
}
return newArr;
}

經過測試以上代碼沒有什麽問題,有問題請指正,謝謝。

數組去重的四種方法