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}); }
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}); }
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}); }
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}); }
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});; }
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.