Maison >interface Web >js tutoriel >Comment implémenter l'algorithme de déduplication de tableau JS
Cette fois, je vais vous montrer comment implémenter l'algorithme de déduplication de tableau JS et quelles sont les précautions pour implémenter l'algorithme de déduplication de tableau JS. Voici des cas pratiques, 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; }
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'Object object 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; }
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; }
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; }
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 Angular pour implémenter des requêtes de données
Comment utiliser le nœud et utiliser l'async pour contrôler concurrence
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!