Maison  >  Article  >  interface Web  >  Exemple d'algorithme de déduplication de tableau JavaScript

Exemple d'algorithme de déduplication de tableau JavaScript

一个新手
一个新手original
2018-05-23 14:56:382453parcourir

Cet article présente principalement l'algorithme de déduplication de tableau JavaScript, résume et analyse les opérations de lecture, d'écriture, de parcours, de comparaison, de tri et autres liées à la déduplication de tableau JavaScript ainsi que les techniques de mise en œuvre liées à l'amélioration de l'algorithme sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

L'exemple de cet article résume l'algorithme de déduplication de tableau JavaScript. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Cas de test : arr = ["1",3,"1",1,4,5,1,"2",5, 1,{" name":"li","age":20},2,4,3,{"name":"li","age":20},""];

méthode 1 : à l'aide d'un tableau temporaire et d'indexOf, la complexité de l'algorithme est : O(n^2)

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

Résultat du test : unique1(arr) : ["1" , 3, 1, 4, 5, "2", Objet { nom="li", âge=20}, 2, Objet { nom="li", âge=20}, ""]

le bug ne peut pas distinguer les objets

Méthode 2 : utiliser l'objet Object en JavaScript comme table de hachage

function unique2(arr){
  var temp=[];
  var hash={};
  for(var i=0; i<arr.length;i++){
    if(!hash[arr[i]]){
      hash[arr[i]]=true;
      temp.push(arr[i]);
    }
  }
  return temp;
}

Résultat du test : unique2(arr) : [" 1", 3, 4, 5, "2", Object { name="li", age=20}, ""]

bug : Impossible de distinguer : 1 et "1"

Modifier

function unique2(arr){
  var temp=[];
  var hash={};
  for(var i=0; i<arr.length;i++){
      var item = arr[i];
    var key = typeof(item)+item;
    if(!hash[key]){
      hash[key]=true;
      temp.push(arr[i]);
    }
  }
  return temp;
}

Résultat du test : unique2(arr): ["1", 3, 1, 4, 5, "2", Objet { name="li", age= 20}, 2 , ""]

Méthode 3 : utilisez d'abord le tri pour trier le tableau, puis utilisez un tableau temporaire pour stocker le dernier du même élément. Cette méthode ne peut être utilisée que. pour les tableaux de type Nombre purs

function unique3(arr){
  arr.sort(function(a,b){
    return a-b;
  });
  var temp = [];
  for(var i=0;i<arr.length;i++){
    if(arr[i] !== arr[i+1]){
      temp.push(arr[i]);
    }
  }
  return temp;
}

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Exemple de code JSON de transfert Ajax

ajax utilise JSON pour réaliser la transmission de données

Code de vérification Ajax pour une implémentation en double

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn