Maison  >  Article  >  interface Web  >  Explication détaillée sur la façon de supprimer le code en double d'un tableau à l'aide de JavaScript

Explication détaillée sur la façon de supprimer le code en double d'un tableau à l'aide de JavaScript

伊谢尔伦
伊谢尔伦original
2017-07-22 14:46:511093parcourir

Supprimer la duplication du tableau

Un moyen simple de supprimer la duplication : déclarez d'abord un tableau vide, insérez le tableau répété dans une boucle for et ignorez l'insertion non en double

var arr = [];  
for(var i=0;i<20;i++){  
    arr.push(parseInt(Math.random()*10));  
}  
Array.prototype.indexOf = function(n){  
    for(var i=0;i<this.length;i++){  
        if(this[i] == n){  
            return i;  
        }  
    }  
    return -1;  
}  
function removeDup(arr){  
    var result = [];  
    for(var i=0;i<arr.length;i++){  
        if(result.indexOf(arr[i]) == -1){  
            result.push(arr[i]);  
        }  
    }  
    return result;   
}  
var arr2 = removeDup(arr)  
document.write(arr+&#39;<br/>&#39;+arr2)

Suppression algorithmique des duplications du tableau

var arr = [];  
for(var i=0;i<20;i++){  
    arr.push(parseInt(Math.random()*10));  
}  
Array.prototype.indexOf = function(n){  
    for(var i=0;i<this.length;i++){  
        if(this[i] == n){  
            return i;  
        }  
    }  
    return -1;  
}  
function removeDup(arr,s,e){  
    if(s==e){  
        //分割就剩下一个  
        return [arr[s]]  
    }else if(s==e-1){  
        //为了优化 剩下两个就不用分割啦  
        if(arr[s]==arr[e]){  
            return [arr[s]]  
        }else{  
            return [arr[s],arr[e]];  
        }  
    }  
    //数组平分成两段,  
    var l = Math.floor((s+e)/2);  
    //左边  
    var arrL = removeDup(arr,s,l);  
    //右边  
    var arrR = removeDup(arr,l+1,e);  
    //结果 先把左边的复制进去  
    var result = arrL;  
    //循环 将不重复的数据插入到结果里面  
    for(var i=0;i<arrR.length;i++){  
        if(result.indexOf(arrR[i])== -1 ) result.push(arrR[i])  
    }  
    return result; //返回结果  
}  
var arrDup = removeDup(arr, 0, arr.length-1);  
document.write(arr+&#39;<br/>&#39;+arrDup);

Explication : Coupez le tableau en double jusqu'à ce qu'il ne reste qu'une seule donnée ou deux tableaux, et séparez la gauche Les données sont placées dans le résultat, et le côté droit est sauté à plusieurs reprises sans insertion répétée jusqu'à ce que la boucle soit terminée, et le résultat est renvoyé

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!

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