Maison  >  Article  >  interface Web  >  Résumé recommandé de plusieurs méthodes JavaScript pour supprimer les éléments en double

Résumé recommandé de plusieurs méthodes JavaScript pour supprimer les éléments en double

伊谢尔伦
伊谢尔伦original
2017-07-24 09:52:471765parcourir

L'exemple résume plusieurs techniques couramment utilisées pour supprimer les éléments en double des tableaux à l'aide de javascript. Les amis qui en ont besoin peuvent s'y référer

Nous partageons ici une question d'entretien frontal à haute fréquence, qui implémente principalement. suppression des éléments en double des tableaux à l'aide de javascript. J'espère que cela sera utile aux débutants


//数组去重的方法
Array.prototype.unique=function(){
  //集中声明变量
  var 
   oldArr=this,
   newArr=[oldArr[0]],
   len=oldArr.length,
   i=1;
  //过滤空数组
  if(!len) return this;
  //过滤重复元素
  for(;i<len;i++){
    newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : &#39;&#39;; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=[&#39;a&#39;,&#39;a&#39;,&#39;b&#39;,&#39;a&#39;,&#39;c&#39;,&#39;d&#39;];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

Bien qu'il y en ait beaucoup en ligne et que ceux que j'ai écrits ne soient pas très bons, après tout, la logique que j'ai écrite est claire et je peux encore le suivre dans le futur. Expansion logique, comme l'extension à la déduplication d'éléments d'objet ou la possibilité d'utiliser plusieurs tableaux en même temps, etc. Voici quelques méthodes écrites par d'autres pour une comparaison complète

Méthode 1 :


function oSort(arr)
{
  var result ={};
  var newArr=[];
  for(var i=0;i
  {
 if(!result[arr[i]])
 {
   newArr.push(arr[i])
   result[arr[i]]=1
 }
  }
  return newArr
}

Méthode 2 :

Parcourez le tableau arr à supprimer, placez les éléments dans un autre tableau tmp respectivement, et n'autoriser le placement de l'élément que s'il est jugé qu'il n'existe pas dans arr Deux fonctions sont utilisées pour saisir
dans tmp : for ...in et indexOf()


var student = [&#39;qiang&#39;,&#39;ming&#39;,&#39;tao&#39;,&#39;li&#39;,&#39;liang&#39;,&#39;you&#39;,&#39;qiang&#39;,&#39;tao&#39;];
 function unique(arr){
   // 遍历arr,把元素分别放入tmp数组(不存在才放)
   var tmp = new Array();
   for(var i in arr){
  //该元素在tmp内部不存在才允许追加
  if(tmp.indexOf(arr[i])==-1){
  }
 }
  return tmp;
}

Méthode 3 :

Mettre la cible L'échange des valeurs des éléments et des positions clés du tableau arr supprimera automatiquement les éléments en double. L'échange ressemblera à : array('qiang'=>. ;1, 'ming'=>1, 'tao'=> 1)


<script type="text/javascript">
  var student = [&#39;qiang&#39;,&#39;ming&#39;,&#39;tao&#39;,&#39;li&#39;,&#39;liang&#39;,&#39;you&#39;,&#39;qiang&#39;,&#39;tao&#39;];
  function unique(arr){
    var tmp = new Array();
    for(var m in arr){
      tmp[arr[m]]=1;
    }
    //再把键和值的位置再次调换
    var tmparr = new Array();
    for(var n in tmp){
     tmparr.push(n);
    }
   return tmparr;
 }
</script>

Méthode 4


/**
* 去除数组重复元素
*/
function uniqueArray(data){ 
  data = data || []; 
  var a = {}; 
  for (var i=0; i<data.length; i++) { 
    var v = data[i]; 
    if (typeof(a[v]) == &#39;undefined&#39;){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
}

Les méthodes sont toutes similaires. La troisième méthode est une meilleure idée.

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