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+'<br/>'+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+'<br/>'+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!