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) : ''; } //返回过滤后的数组没有影响原数组 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 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 = ['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 :
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 = ['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 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!