Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung der Ideen und des Implementierungscodes zum Entfernen doppelter Elemente aus JavaScript-Arrays

Detaillierte Erläuterung der Ideen und des Implementierungscodes zum Entfernen doppelter Elemente aus JavaScript-Arrays

伊谢尔伦
Freigeben: 2017-07-22 14:11:40
Original
1095 Leute haben es durchsucht

Javascript-Array-Deduplizierung ist eine relativ häufige Anforderung, und es gibt viele Lösungen

Ideen:

Traverse das Array, vergleiche eins nach dem anderen, lösche die folgenden, wenn sie gleich sind

Durchlaufe das Array, vergleiche eins nach dem anderen, vergleiche die gleichen, überspringe die vorherigen Duplikate und füge die unterschiedlichen ein in das neue Array

Fügen Sie ein beliebiges Array-Element in das neue Array ein, durchlaufen Sie die verbleibenden Array-Elemente, wählen Sie eines aus, vergleichen Sie es einzeln mit den Elementen des neuen Arrays, wenn es Unterschiede gibt, Fügen Sie es in das neue Array ein.

Durchlaufen Sie das Array, nehmen Sie ein Element als Attribut des Objekts und bestimmen Sie, ob das Attribut vorhanden ist

1. Löschen Sie die wiederholten:


function ov(arr){
 //var a=((new Date).getTime())
 for(var i=;i<arr.length;i++)
 for(var j=i+;j<arr.length;j++)
  if(arr[i]===arr[j]){arr.splice(j,);j--;}  
 //console.info((new Date).getTime()-a)  
 return arr.sort(function(a,b){return a-b});
}
Nach dem Login kopieren

2. Dies ist eine herkömmliche Methode, die leichter zu verstehen ist. Wenn sie gleich sind, springen Sie aus der Schleife


function ov(a) {
 //var a=((new Date).getTime())
 var b = [], n = a.length, i, j;
 for (i = ; i < n; i++) {
 for (j = i + ; j < n; j++)
  if (a[i] === a[j]){j=false;break;}
 if(j)b.push(a[i]);
 }
 //console.info((new Date).getTime()-a) 
 return b.sort(function(a,b){return a-b});
}
Nach dem Login kopieren

3. Es hat lange gedauert, bis ich das verstanden habe. Obwohl die j-Schleife hier weitergeht, hat sich der i-Wert geändert. Es entspricht einer neuen i-Schleife:


function ov(a) {
 //var a=((new Date).getTime())
 var b = [], n = a.length, i, j;
 for (i = ; i < n; i++) {
 for (j = i + ; j < n; j++)
 if (a[i] === a[j])j=++i
 b.push(a[i]);}
 //console.info((new Date).getTime()-a) 
 return b.sort(function(a,b){return a-b});
}
Nach dem Login kopieren

4. Stellen Sie sicher, dass alles im neuen Array eindeutig ist


function ov(ar){
//var a=((new Date).getTime())
 var m=[],f;
 for(var i=;i<ar.length;i++){
 f=true;
 for(var j=;j<m.length;j++)
 if(ar[i]===m[j]){f=false;break;};
 if(f)m.push(ar[i])}
//console.info((new Date).getTime()-a) 
 return m.sort(function(a,b){return a-b});
}
Nach dem Login kopieren

5. Objektattribute verwenden


function ov(ar){
// var a=(new Date).getTime()
 var m,n=[],o= {};
 for (var i=;(m= ar[i])!==undefined;i++)
 if (!o[m]){n.push(m);o[m]=true;}
// console.info((new Date).getTime()-a) 
 return n.sort(function(a,b){return a-b});;
 }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Ideen und des Implementierungscodes zum Entfernen doppelter Elemente aus JavaScript-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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