1 Testfälle// Testfall const a = {}; Konstante b = { c: 1 }; Konstantes Array = [ 1, 1, "1", "1", {}, {}, { c: 1 }, { c: 1}, ein, ein, b, b, [], [], [1], [1], undefiniert, undefiniert, null, null, NaN, NaN, ]; 2 JS-Array-Deduplizierung 4 Typen2.1 ElementvergleichDieser Typ entfernt Duplikate durch Vergleichen von Array-Elementen. 2.1.1 Zweischichtiger For-Schleifenvergleich (häufig in es5 verwendet) Verwenden Sie eine doppelte for-Schleife, um Array-Elemente einzeln zu vergleichen, und verwenden Sie // Doppelte for-Schleife Funktion uniq1(arr) { für (sei i = 0; i < arr.length; i++) { für (sei j = i + 1; j < arr.length; j++) { wenn (arr[i] === arr[j]) { arr.splice(j, 1) J-- } } } Rückflug an } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null,NaN,NaN] Durch den Vergleich der Ergebnisse vor und nach der Deduplizierung werden die doppelten 2.1.2 Sortierung benachbarter Vergleiche Verwenden Sie die Methode Funktion uni2(arr) { arr.sort(); für (sei i = 0; i < arr.length - 1; i++) { arr[i] === arr[i + 1] && arr.splice(i + 1, 1) && i--; } Rückflug an; } Sie können auch ein neues Array erstellen und nicht wiederholte Elemente in das neue Array einfügen. Funktion uniq3(arr) { arr = arr.sort() const newArr = [arr[0]] für (sei i = 1; i < arr.length; i++) { wenn (arr[i] !== arr[i - 1]) { newArr.push(arr[i]) } } returniere newArr } // Deduplizierungsergebnis// [[],[],1,'1',[1],[1],NaN,NaN,{},{},{c:1},{c:1},{},{c:1},null,undefined] Doppelte 2.2 Elementpositionstyp suchenDieser Typ entfernt Duplikate, indem er das erste Vorkommen eines Elements findet. 2.2.1 Index von Verwenden Sie Funktion uniq4(arr) { lass res = [] für (sei i = 0; i < arr.length; i++) { wenn (arr.indexOf(arr[i]) === i) { res.push(arr[i]) } } Rückgabewert } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null] Und weil 2.2.2 Index finden Verwenden Sie Funktion uniq5(arr) { lass res = [] für (sei i = 0; i < arr.length; i++) { wenn (arr.findIndex(item => item === arr[i]) === i) { res.push(arr[i]) } } Rückgabewert } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null] Und weil 2.3 Element-ExistenztypDieser Typ entfernt Duplikate, indem er bestimmt, ob das aktuelle Element im neuen Array vorhanden ist. 2.3.1 umfasst Mit der Methode Funktion uniq6(arr) { lass res = [] für (sei i = 0; i < arr.length; i++) { wenn (!res.includes(arr[i])) { res.push(arr[i]) } } Rückgabewert } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null,NaN]
2.3.2 einige Mit der Methode Funktion uniq7(arr) { lass res = [] für (sei i = 0; i < arr.length; i++) { wenn (!res.some(item => item === arr[i])) { res.push(arr[i]) } } Rückgabewert } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null,NaN,NaN] Auch hier wird 2.4 Sich auf Datenstruktureigenschaften verlassen Dieser Typ verwendet die nicht wiederholbaren Eigenschaften der von ES6 bereitgestellten Datenstrukturen 2.4.1 Karte Die von Funktion uniq8(arr) { const map = neue Map() für (sei i = 0; i < arr.length; i++) { !map.hat(arr[i]) && map.set(arr[i], true) } zurückgeben [...map.keys()] } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null,NaN]
2.4.2 Set (ES6 am häufigsten verwendet) Die Werte der Mitglieder der Funktion uniq9(arr) { zurückgeben [...neues Set(arr)] } // Deduplizierungsergebnis// [1,'1',{},{},{c:1},{c:1},{},{c:1},[],[],[1],[1],undefined,null,NaN] 3 Ergänzung Die oben genannten Methoden können mithilfe verschiedener Beispielsweise wird in der Kurz gesagt: Es gibt viele Methoden, aber sie bleiben alle gleich. Einige Deduplizierungsmethoden sind für In praktischen Anwendungen ist die gebräuchlichste Methode die Verwendung von Set, oder Sie können zur Verarbeitung die Drittanbieterbibliothek Dies ist das Ende dieses Artikels über die Details der JS-Array-Deduplizierung. Weitere relevante Inhalte zur JS-Array-Deduplizierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Java verwendet Apache.POI, um HSSFWorkbook nach Excel zu exportieren
>>: Detaillierte grafische Erklärung der MySQL-Abfragesteuerungsanweisungen
Vorwort Mit der Funktion count werden die Datensä...
Aufgrund der Netzwerkisolation kann MySQL nicht m...
Verwenden Sie zum Crawlen von Daten die browserba...
Der Erste: 1. Fügen Sie wichtige Headerdateien hi...
Heute musste ich nach dem Neustart des Spiels fes...
So deklarieren Sie einen Cursor in MySQL: 1. Vari...
Es gibt kein Problem mit der Dockerfile-Konfigura...
Die Javascript-Funktion zum Konvertieren von <t...
Abgeleitete Tabellen Wenn die Hauptabfrage eine a...
Einführung Einfach ausgedrückt ist tcpdump ein Pa...
Die Installation von MySQL 5.7 auf Ubuntu 1804 wi...
Tabellenname und Felder –1. Studentenliste Studen...
Basisbild Das Basisbild hat zwei Bedeutungen: Ist...
1. Ich habe lange im Internet gesucht, konnte abe...
Inhaltsverzeichnis Definition Grammatik Beispiele...