Maison > interface Web > js tutoriel > 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

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

伊谢尔伦
Libérer: 2017-07-24 13:27:33
original
1720 Les gens l'ont consulté

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]) == &#39;undefined&#39;){ 
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>
Copier après la connexion

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

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

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!

É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