Heim  >  Artikel  >  Web-Frontend  >  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

伊谢尔伦
伊谢尔伦Original
2017-07-22 14:11:401057Durchsuche

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

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

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

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

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

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!

Stellungnahme:
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