Maison > interface Web > js tutoriel > le corps du texte

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

伊谢尔伦
Libérer: 2017-07-24 09:52:47
original
1758 Les gens l'ont consulté

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]
Copier après la connexion

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
}
Copier après la connexion

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;
}
Copier après la connexion

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>
Copier après la connexion

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; 
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!