Maison > interface Web > js tutoriel > le corps du texte

Exemple d'algorithme de déduplication de tableau JavaScript

一个新手
Libérer: 2018-05-23 14:56:38
original
2470 Les gens l'ont consulté

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal