Heim > Web-Frontend > js-Tutorial > Zusammenfassung der Methoden zum Löschen doppelter Elemente aus Arrays in javascript_javascript skills

Zusammenfassung der Methoden zum Löschen doppelter Elemente aus Arrays in javascript_javascript skills

WBOY
Freigeben: 2016-05-16 15:53:22
Original
1235 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt, wie Sie mit JavaScript doppelte Elemente aus einem Array löschen. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Hier teile ich eine häufig gestellte Front-End-Interviewfrage, bei der hauptsächlich Javascript implementiert wird, um doppelte Elemente in einem Array zu löschen. Ich hoffe, es hilft Anfängern

//数组去重的方法
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]

Nach dem Login kopieren

Obwohl es viele im Internet gibt und die von mir geschriebenen nicht sehr gut sind, ist die von mir geschriebene Logik klar und kann entlang der Logik erweitert werden, z. B. durch Erweitern auf Objektelemente zum Entfernen von Duplikaten oder Betreiben mehrerer Arrays zur gleichen Zeit usw. Ich werde sie hier veröffentlichen. Sie können mehrere von anderen geschriebene Methoden umfassend vergleichen

Methode 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
}

Nach dem Login kopieren

Methode 2:

Durchlaufen Sie das zu löschende Array arr und fügen Sie die Elemente jeweils in ein anderes Array tmp ein. Erst nachdem festgestellt wurde, dass das Element in arr nicht vorhanden ist, kann es in tmp platziert werden
Es werden zwei Funktionen verwendet: for ...in und 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;
}

Nach dem Login kopieren

Methode 3:

Durch den Austausch der Elementwerte und Schlüsselpositionen des Zielarrays arr werden doppelte Elemente automatisch gelöscht. Der Austausch sieht folgendermaßen aus: 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>

Nach dem Login kopieren

Methode 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; 
} 

Nach dem Login kopieren

Die Methoden sind ähnlich, aber die dritte Methode ist ziemlich clever~

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage