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
Es gibt zwei Arten von HTML-Tags: Inline-Elemente...
In SQL wird GROUP BY verwendet, um Daten in den E...
1. Laden Sie das Installationspaket herunter -Wäh...
Wie lösche ich Umgebungsvariablen unter Linux? Ve...
Erstellen einer Datenbank Rechtsklick - Neue Date...
Normalerweise müssen die von Benutzern hochgelade...
Einführung in Vue Die aktuelle Ära der großen Fro...
[LeetCode] 196.Doppelte E-Mails löschen Schreiben...
In vielen Fällen müssen Sie den Bildhintergrund b...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Dieser Artikel zeichnet das Installationstutorial...
Inhaltsverzeichnis 1. Was sind Mikroaufgaben? 2. ...
Datensicherung und -wiederherstellung Teil 3, Det...
Schauen Sie sich zuerst den Code an Code kopieren ...