Bei der tatsächlichen Arbeit oder bei Interviews stoßen wir häufig auf das Problem der „Array-Deduplizierung“. Im Folgenden sind verschiedene Methoden zur Array-Deduplizierung aufgeführt, die mit js implementiert wurden: 1. Vergleichen Sie nacheinander jedes Element des Arrays mit anderen Elementen, finden Sie doppelte Elemente und löschen Sie sie var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5]; konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5, 5] Funktion noRepeat1(arr) { für(var i = 0; i < arr.length-1; i++){ für(var j = i+1; j < arr.length; j++){ wenn (arr[i]===arr[j]){ arr.splice(j,1); J--; } } } Rückflug an; } var arr2 = noRepeat1(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8] 2. Verwenden Sie die Methode indexOf (), um zu bestimmen, ob der Positionsindex des ersten Auftretens dieses Elements im Array dem Schleifenindex entspricht var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5]; konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5] Funktion noRepeat2(arr) { für (var i = 0; i < arr.length; i++) { wenn (arr.indexOf(arr[i]) != i) { arr.splice(i,1);//Nach dem Löschen des Array-Elements wird die Array-Länge um 1 reduziert und die folgenden Elemente werden nach vorne verschoben i--;//Array-Index-Rollback} } Rückflug an; } var newArr = noRepeat2(arr); console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8] 3. Verwenden der Filtermethode im Array var arr = ['Apfel','Banane','Birne','Apfel','Orange','Orange']; console.log(arr) //["Apfel", "Banane", "Birne", "Apfel", "Orange", "Orange"] var newArr = arr.filter(Funktion(Wert,Index,selbst){ gibt self.indexOf(Wert) === Index zurück; }); console.log(newArr); //["Apfel", "Banane", "Birne", "Orange"] 4. Verwenden Sie das neue Array, um den Index des aktuellen Elements im Array mithilfe der indexOf-Methode zu bestimmen. Wenn es dem Index der Schleife entspricht, fügen Sie es dem neuen Array hinzu. var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5]; console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5] Funktion noRepeat4(arr) { var ret = []; für (var i = 0; i < arr.length; i++) { wenn (arr.indexOf(arr[i]) == i) { ret.push(arr[i]); } } Rückkehr ret; } var arr2 = noRepeat4(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8] 5. Verwenden Sie leere Objekte, um die bereits im neuen Array gespeicherten Elemente aufzuzeichnen var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] var obj={}; var neuesArr = []; für(var i=0;i<arr.length;i++){ wenn(!obj[arr[i]]){ obj[arr[i]]=wahr; newArr.push(arr[i]); } } console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8] 6. Bestimmen Sie mithilfe des neuen Arrays, ob das Element im neuen Array vorhanden ist. Wenn nicht, fügen Sie das Element dem neuen Array hinzu. var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] Funktion noRepeat6(arr){ var neuesArr = []; für(var i = 0; i < arr.length; i++){ wenn (newArr.indexOf(arr[i]) == -1) { newArr.push(arr[i]); } } gib neuesArr zurück; } var arr2 = noRepeat6(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8] 7. Bestimmen Sie mithilfe des neuen Arrays, ob das Element im neuen Array vorhanden ist. Wenn nicht, fügen Sie das Element dem neuen Array hinzu (die Länge des ursprünglichen Arrays bleibt unverändert, wird jedoch in Zeichenfolgenreihenfolge sortiert). var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] Funktion noRepeat7(arr) { var ret = [], end; //temporäre Variable zum Vergleichen wiederholter Elemente arr.sort(); //Zahlen neu sortieren end = arr[0]; ret.push(arr[0]); für (var i = 1; i < arr.length; i++) { if (arr[i] != end) {//Wenn das aktuelle Element nicht gleich dem temporären Element ist, füge dieses Element dem neuen Array hinzu ret.push(arr[i]); Ende = arr[i]; } } Rückkehr ret; } var arr2 = noRepeat7(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9] 8. Diese Methode ändert das ursprüngliche Array nicht direkt mit Hilfe eines neuen Arrays, und das Array wird nach der Deduplizierung sortiert var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] Funktion noRepeat8(arr) { var end; //temporäre Variable zum Vergleichen wiederholter Elemente arr.sort(); //Zahlen neu sortieren end = arr[0]; für (var i = 1; i < arr.length; i++) { if (arr[i] == end) {//Wenn das aktuelle Element gleich dem temporären Element ist, lösche dieses Element aus dem Array arr.splice(i,1); ich--; }anders{ Ende = arr[i]; } } Rückflug an; } var arr2 = noRepeat8(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9] 9. Doppelschleife ändert das ursprüngliche Array var arr = [1,1,2,2,3,3,4,4,5,5,4,3,1,2,6,6,6,6]; konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 1, 2, 6, 6, 6, 6] Funktion noRepeat9(arr){ für (var i = 0; i < arr.length; i++) { für (var j = 0; j < arr.length; j++) { if (arr[i] == arr[j] && i != j) {//Lösche die wiederholten Zahlen arr.splice(j, 1); } } } Rückflug an; } var arr2 = noRepeat9(arr); console.log(arr2); //[1, 2, 3, 4, 5, 6] 10. Mit Hilfe eines neuen Arrays var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1]; konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1] var neuesArr = []; für (var i = 0; i < arr.length; i++) { var repArr = []; //Empfange den Index nach den wiederholten Daten //Die innere Schleife findet den Index mit den wiederholten Daten for (var j = i + 1; j < arr.length; j++) { wenn (arr[i] == arr[j]) { repArr.push(j);//Finde den Index der folgenden wiederholten Daten} } //Konsole.log(repArr); if (repArr.length == 0) {//Wenn das wiederholte Array keinen Wert hat, bedeutet dies, dass es sich nicht um wiederholte Daten handelt. newArr.push(arr[i]); } } console.log(newArr); //[5, 4, 3, 2, 1] 11. Mit Hilfe der von ES6 bereitgestellten Set-Struktur var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1]; konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1] Funktion noRepeat11(arr){ var neuesArr = []; var myset = new Set(arr); //Verwenden der Funktion, dass die Set-Struktur keine doppelten Daten empfangen kann for(var val of myset){ newArr.push(Wert) } gib neuesArr zurück; } var arr2 = noRepeat11(arr) console.log(arr2); //[1, 2, 3, 4, 5] Oben sind die Details zu 11 Methoden zur JS-Array-Deduplizierung aufgeführt. Weitere Informationen zur JS-Array-Deduplizierung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: MySQL-Onlineprobleme mit langsamem Log und Optimierungslösungen
>>: Linux Redis-Sentinel-Konfigurationsdetails
Als ich kürzlich an Überwachungsgeräten arbeitete...
Das Installationstutorial für mysql5.7.17 wird Ih...
Was ist ELK? ELK ist ein vollständiger Satz von L...
Als ich den Dienst täglich überprüfte und mir die...
Einführung MySQL sollte eine sehr häufig verwende...
Ich habe vor kurzem angefangen, MySQL zu lernen. ...
Inhaltsverzeichnis 1. Zahlen umkehren 2. Holen Si...
Inhaltsverzeichnis Vorwort Start Ein kleiner Geda...
Inhaltsverzeichnis Vorwort 1. Vorschau der Office...
In letzter Zeit wurden in neuen Projekten Springc...
Inhaltsverzeichnis 1. Verwendung in Komponenten 2...
Cooper sprach über den visuellen Pfad des Benutze...
1. Drücken Sie Win + R und geben Sie cmd ein, um ...
<div ausrichten="zentrieren"> <...
Im vorherigen Artikel haben wir erklärt, wie ngin...