Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter la déduplication de tableau en JavaScript ? Trois méthodes pour supprimer la duplication des tableaux dans js (exemples de code)

青灯夜游
Libérer: 2018-10-15 13:40:33
original
3897 Les gens l'ont consulté

Comment implémenter la déduplication de tableau en JavaScript ? Cet article vous présentera trois méthodes courantes de déduplication de tableaux dans js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Ci-dessous, nous présenterons trois méthodes courantes de déduplication de tableaux dans js à travers des exemples de code simples.

La première méthode : boucle for (deux fois) + nouveau tableau

Idée :

1 .Construct un nouveau tableau pour stocker les résultats

2. Retirez un élément du tableau d'origine à chaque fois dans la boucle for et utilisez cette boucle d'élément pour comparer avec le tableau de résultats

3. il n'y a aucun élément dans le tableau résultat Cet élément est stocké dans le tableau résultat

//方法一
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeDuplicatedItem(arr) {
   for(var i = 0; i < arr.length-1; i++){
       for(var j = i+1; j < arr.length; j++){
           if(arr[i]==arr[j]){
              arr.splice(j,1);//console.log(arr[j]);
              j--;
           }
       }
   }
   return arr;
}

arr2 = removeDuplicatedItem(arr);
console.log(arr);
console.log(arr2);
Copier après la connexion

La première méthode peut essentiellement répondre à nos besoins, pour arr = [1,23,1,1,1,3, 23,5 ,6,7,9,9,8,5] Un tableau aussi simple n'a besoin que d'utiliser la comparaison de types, mais que se passe-t-il si le tableau est très long ? En parcourant le tableau de cette manière, la longueur du tableau est n, alors la complexité temporelle est n*n. Il est évident que les performances de la première méthode doivent être améliorées. Vient ensuite la deuxième méthode, qui utilise le tri par tableau pour supprimer les valeurs en double pendant le processus de tri.

Deuxième méthode : boucle for (une fois) + tri sort() + nouveau tableau

La longueur du tableau d'origine reste inchangée mais est pressée sur String tri par ordre, à l'aide du nouveau tableau, déterminez si l'élément existe dans le nouveau tableau. S'il n'existe pas, ajoutez l'élément au nouveau tableau

//方法二
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeRepEle(ar) {
    var ret = [],
        end;//临时变量用于对比重复元素
    ar.sort();//将数重新组排序
    end = ar[0];
    ret.push(ar[0]);
    for (var i = 1; i < ar.length; i++) {
        if (ar[i] != end) {//当前元素如果和临时元素不等则将此元素添加到新数组中
            ret.push(ar[i]);
            end = ar[i];
        }
    }
    return ret;
}

arr2 = removeRepEle(arr);
console.log(arr);//[ 1, 1, 1, 1, 23, 23, 3, 5, 5, 6, 7, 8, 9, 9 ]
console.log(arr2);//[ 1, 23, 3, 5, 6, 7, 8, 9 ]
Copier après la connexion

La deuxième méthode a certaines limites, parce que le tableau Il est d'abord trié puis dédupliqué, donc le résultat final renvoyé est le résultat de la déduplication et du tri du tableau js. S'il est nécessaire de supprimer les doublons sans modifier l'ordre du tableau, cette méthode n'est pas recommandée.

La troisième méthode (recommandée) : boucle for (une fois) + nouveau tableau + nouvel objet

Utiliser des objets vides pour enregistrer de nouveaux éléments de tableaux qui ont été stockés dans

//方法三 
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
var o={};
var new_arr=[];
for(var i=0;i<arr.length;i++){
    var k=arr[i];
    if(!o[k]){
        o[k]=true;
        new_arr.push(k);
    }
}
console.log(new_arr);
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de didacticiels connexes, veuillez visiter le Tutoriel vidéo JavaScript, le Tutoriel vidéo jQuery, le Tutoriel bootstrap !

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