Maison >interface Web >js tutoriel >Explication détaillée des idées et du code d'implémentation pour supprimer les éléments en double des tableaux JavaScript
La déduplication de tableaux Javascript est une exigence relativement courante, et il existe de nombreuses solutions
Idées :
Traverse le tableau, comparez un par un, supprimez les suivants s'ils sont identiques
Parcourez le tableau, comparez un par un, comparez les mêmes, sautez les doublons précédents, et mettez les différents dans le nouveau tableau
Mettez n'importe quel élément du tableau dans le nouveau tableau, parcourez les éléments restants du tableau, choisissez-en un, comparez-le un par un avec les éléments du nouveau tableau, s'il y a des différences, mettez-le dans le nouveau tableau.
Parcourez le tableau, prenez un élément comme attribut de l'objet et déterminez si l'attribut existe
1 Supprimez les répétés :
function ov(arr){ //var a=((new Date).getTime()) for(var i=;i<arr.length;i++) for(var j=i+;j<arr.length;j++) if(arr[i]===arr[j]){arr.splice(j,);j--;} //console.info((new Date).getTime()-a) 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 ov(a) { //var a=((new Date).getTime()) var b = [], n = a.length, i, j; for (i = ; i < n; i++) { for (j = i + ; j < n; j++) if (a[i] === a[j]){j=false;break;} if(j)b.push(a[i]); } //console.info((new Date).getTime()-a) 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é. Cela équivaut à une nouvelle boucle i :
function ov(a) { //var a=((new Date).getTime()) var b = [], n = a.length, i, j; for (i = ; i < n; i++) { for (j = i + ; j < n; j++) if (a[i] === a[j])j=++i b.push(a[i]);} //console.info((new Date).getTime()-a) return b.sort(function(a,b){return a-b}); }4. Assurez-vous que tout dans le nouveau tableau est unique
.
function ov(ar){ //var a=((new Date).getTime()) var m=[],f; for(var i=;i<ar.length;i++){ f=true; for(var j=;j<m.length;j++) if(ar[i]===m[j]){f=false;break;}; if(f)m.push(ar[i])} //console.info((new Date).getTime()-a) return m.sort(function(a,b){return a-b}); }5. Utiliser les attributs d'objet
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!