Maison > Article > interface Web > Explication détaillée des idées et des exemples de code sur la façon de supprimer les éléments en double d'un tableau en JavaScript
Dans le processus d'écriture de programmes, nous rencontrons souvent le besoin de supprimer les éléments en double d'un tableau. On peut utiliser une double boucle pour y parvenir, pour les petits tableaux. Mais si notre tableau est relativement grand, il contient des dizaines de milliers d'éléments. Utiliser la double circulation est alors extrêmement inefficace. Nous allons maintenant utiliser les fonctionnalités de js pour écrire une méthode efficace pour supprimer les éléments en double d'un tableau.
<script> function unique(data){ data = data || []; var a = {}; for (var i=0; i<data.length; i++) { var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; } function test(){ var arr = [9,1,3,8,7,7,6,6,5,7,8,8,7,4,3,1]; var arr1 = unique(arr); alert(arr1.join(",")); } test(); </script>
Résultat de sortie :
9,1,3,8,7,6,5,4
La déduplication du tableau JS consiste à supprimer les éléments en double dans le tableau :
Array.prototype.delRepeat=function(){ var newArray=new Array(); var len=this.length; for (var i=0;i<len ;i++){ for(var j=i+1;j<len;j++){ if(this[i]===this[j]){ j=++i; } } newArray.push(this[i]); } return newArray; }
Mais il est évident qu'il y a une boucle for imbriquée avec une autre boucle for, ce qui doit prendre beaucoup de temps lorsqu'on traite de grandes quantités de données. Après recherche et conseils d'experts, une nouvelle méthode s'est avérée inefficace ! été optimisé :
Array.prototype.delRepeat=function(){ var newArray=[]; var provisionalTable = {}; for (var i = 0, item; (item= this[i]) != null; i++) { if (!provisionalTable[item]) { newArray.push(item); provisionalTable[item] = true; } } return newArray; }
consiste à utiliser un objet provisionalTable temporaire et à utiliser la valeur du tableau comme valeur clé de l'objet provisionalTable. Si la valeur correspondante n'existe pas, poussez la valeur de ce tableau vers. un nouveau tableau.
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!