Maison > interface Web > js tutoriel > Méthodes recommandées pour supprimer les valeurs en double des tableaux dans les compétences JavaScript_javascript

Méthodes recommandées pour supprimer les valeurs en double des tableaux dans les compétences JavaScript_javascript

WBOY
Libérer: 2016-05-16 15:05:55
original
1465 Les gens l'ont consulté

La déduplication des baies est une exigence courante. Nous envisagerons temporairement la déduplication des baies du même type. L'essentiel est de clarifier les idées et de considérer les performances. Les méthodes suivantes sont essentiellement disponibles sur Internet. Voici juste un bref résumé.

Choses :

1. Parcourez le tableau et comparez un par un. Si la comparaison est la même, supprimez les
suivants. 2. Parcourez le tableau, comparez-les un par un et ignorez les doublons précédents s'ils sont identiques. S'ils ne sont pas identiques, placez-les dans le nouveau tableau
. 3. Prenez n'importe quel élément du tableau et placez-le dans le nouveau tableau, parcourez les éléments restants du tableau, prenez-en un, comparez-le un par un avec les éléments du nouveau tableau, s'il y a des différences, placez-le dans le nouveau tableau.
4. Parcourez le tableau, prenez un élément comme attribut de l'objet et déterminez si l'attribut existe

1. Supprimez les doublons suivants :

function ov1(arr){
  //var a1=((new Date).getTime())
  for(var i=0;i<arr.length;i++)
    for(var j=i+1;j<arr.length;j++)
      if(arr[i]===arr[j]){arr.splice(j,1);j--;}      
  //console.info((new Date).getTime()-a1)        
  return arr.sort(function(a,b){return a-b});
}
Copier après la connexion

2. Il s'agit d'une méthode conventionnelle, plus facile à comprendre. Si elles sont identiques, sortez de la boucle
.

function ov2(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
      if (a[i] === a[j]){j=false;break;}
    if(j)b.push(a[i]);
    }
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
} 
Copier après la connexion

3. Il m'a fallu beaucoup de temps pour comprendre cela. Bien que la boucle j continue ici, la valeur i a changé. C'est équivalent à une nouvelle boucle i :

function ov3(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
    if (a[i] === a[j])j=++i
  b.push(a[i]);}
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
}   
Copier après la connexion

4. Assurez-vous que tout ce qui se trouve dans le nouveau tableau est unique

function ov4(ar){
//var a1=((new Date).getTime())
  var m=[],f;
  for(var i=0;i<ar.length;i++){
  f=true; 
  for(var j=0;j<m.length;j++)
  if(ar[i]===m[j]){f=false;break;};
  if(f)m.push(ar[i])}
//console.info((new Date).getTime()-a1)  
  return m.sort(function(a,b){return a-b});
}
Copier après la connexion

5. Utiliser les attributs d'objet

	function ov5(ar){
	//  var a1=(new Date).getTime()
			var m,n=[],o= {};
			for (var i=0;(m= ar[i])!==undefined;i++)
			if (!o[m]){n.push(m);o[m]=true;}
	//  console.info((new Date).getTime()-a1)  
		return n.sort(function(a,b){return a-b});;
		}
Copier après la connexion

Les méthodes recommandées ci-dessus pour supprimer les valeurs en double des tableaux JavaScript sont tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous prendrez en charge Script Home.

É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