Maison >interface Web >js tutoriel >Deux méthodes recommandées pour la déduplication des compétences JavaScript arrays_javascript

Deux méthodes recommandées pour la déduplication des compétences JavaScript arrays_javascript

WBOY
WBOYoriginal
2016-05-16 15:06:361470parcourir

1. Déduplication de la baie

Le type Array ne fournit pas de méthode pour supprimer les doublons. Si vous souhaitez supprimer les éléments en double du tableau, vous devez trouver un moyen vous-même :

Méthode 1 : utilisez la méthode indexOf

var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

Méthode 2 :

function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

Méthode 2, L'idée générale est de transférer les éléments du tableau vers un autre tableau un par un. Pendant le processus de transfert, vérifiez si l'élément est dupliqué, et si c'est le cas, jetez-le directement. Comme le montrent les boucles imbriquées, cette méthode est extrêmement inefficace. Nous pouvons utiliser une structure de table de hachage pour enregistrer les éléments existants, afin d'éviter la boucle interne. Il se trouve que l'implémentation de hashtable en Javascript est extrêmement simple. Les améliorations sont les suivantes :

function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

Les deux méthodes recommandées ci-dessus pour dédupliquer les 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.

Déclaration:
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