Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung der Ideen und des Implementierungscodes zum Entfernen doppelter Elemente aus JavaScript-Arrays
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!