Maison >interface Web >js tutoriel >Résumé des méthodes de suppression des éléments en double des tableaux dans les compétences javascript_javascript

Résumé des méthodes de suppression des éléments en double des tableaux dans les compétences javascript_javascript

WBOY
WBOYoriginal
2016-05-16 15:53:221236parcourir

L'exemple de cet article décrit comment supprimer les éléments en double d'un tableau à l'aide de JavaScript. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Ici, je partage une question d'entretien frontal fréquemment posée, qui implémente principalement javascript pour supprimer les éléments en double dans un tableau. J'espère que cela aidera les 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 &#63; newArr.push(_this) : ''; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

Bien qu'il y en ait beaucoup sur Internet 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 peut être étendue le long de la logique, comme l'extension aux éléments d'objet pour supprimer les doublons ou l'exploitation de plusieurs tableaux en même temps, etc. Je les mettrai ici. Vous pouvez comparer de manière exhaustive plusieurs méthodes écrites par d'autres

.

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 et placez les éléments dans un autre tableau tmp respectivement. Ce n'est qu'après avoir jugé que l'élément n'existe pas dans arr qu'il peut être placé dans tmp
Deux fonctions sont utilisées : for ...in et indexOf()

var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
 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 :

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

<script type="text/javascript">
  var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
  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]) == 'undefined'){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
} 

Les méthodes sont similaires, mais la troisième méthode est assez astucieuse~

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

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