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);
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 ]
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);
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!