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

Comment implémenter l'algorithme de déduplication de tableau dans JS

php中世界最好的语言
Libérer: 2018-05-23 11:46:01
original
1574 Les gens l'ont consulté

Cette fois, je vais vous montrer comment implémenter l'algorithme de déduplication de tableau en JS. Quelles sont les précautions pour implémenter l'algorithme de déduplication de tableau en JS Voici un cas pratique, jetons un coup d'œil.

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 du tableau temporaire et de l'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ésultats du test :

unique1(arr): ["1", 3, 1, 4, 5, "2", Objet { name="li", age=20}, 2, Objet { name="li", age= 20 }, ""]

bug Impossible de distinguer les objets

Méthode 2 : Utiliser l'Objet Objet en JavaScript Créer une 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", Objet { nom ="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

Test Résultat :

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 des mêmes éléments. Cette méthode ne peut que. être utilisé pour les types de nombres purs Array

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

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le chinois PHP. site web!

Lecture recommandée :

Comment utiliser Vue+better-scroll pour implémenter la navigation par index alphabétique

Comment implémenter Vue Boutons du projet WeChat Autorisation requise pour se connecter

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!