1. Array-Traversal-Methode
Die einfachste Methode der Deduplizierung, Implementierungsidee: Erstellen Sie ein neues Array, durchlaufen Sie das eingehende Array und fügen Sie den Wert hinzu, wenn er nicht im neuen Array enthalten ist ist in Die Array-Methode „indexOf“ ist eine ECMAScript5-Methode, die von IE8 und niedriger nicht unterstützt wird. Sie müssen mehr Code schreiben, um mit Browsern niedrigerer Versionen kompatibel zu sein:
1 2 3 4 5 6 7 8 9 10 11 |
|
2. Objekt-Schlüssel-Wert-Paar-Methode
Diese Methode wird schneller ausgeführt als jede andere Methode, benötigt jedoch mehr Speicher Implementierungsidee: Erstellen Sie ein neues js-Objekt und ein neues Array und beurteilen Sie beim Durchlaufen des eingehenden Arrays value Ist es der Schlüssel des js-Objekts? Wenn nicht, fügen Sie den Schlüssel zum Objekt hinzu und fügen Sie ihn in ein neues Array ein. Hinweis: Bei der Feststellung, ob es sich um einen js-Objektschlüssel handelt, wird „toString()“ automatisch für den eingehenden Schlüssel ausgeführt. Verschiedene Schlüssel können mit demselben verwechselt werden, zum Beispiel: a[1], a[„1“]. Um das obige Problem zu lösen, müssen Sie noch „indexOf“ aufrufen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
3. Array-Index-Beurteilungsmethode
Sie müssen immer noch „indexOf“ aufrufen und die Leistung ist ähnlich wie bei Methode 1. Implementierungsidee: Wenn das i-te Element des aktuellen Arrays zuerst an einer anderen Position als i erscheint Im aktuellen Array bedeutet dies, dass das i-te Element Element i wiederholt und ignoriert wird. Andernfalls speichern Sie das Ergebnisarray.
1 2 3 4 5 6 7 8 9 10 |
|
4. Angrenzende Entfernungsmethode nach dem Sortieren
Obwohl die Sortierergebnisse der „Sort“-Methode nativer Arrays nicht sehr zuverlässig sind, hat dieser Mangel keine Auswirkungen auf die Deduplizierung, bei der die Reihenfolge nicht berücksichtigt wird. Implementierungsidee: Sortieren Sie das eingehende Array nach den gleichen Werten und fügen Sie beim Durchlaufen nur Werte hinzu, die keine Duplikate des vorherigen Werts sind das neue Array.
1 2 3 4 5 6 7 8 9 10 11 |
|
5. Array-Traversal-Methode optimieren
Der Implementierungscode dieser Methode ist ziemlich cool, Implementierungsidee: Holen Sie sich den Wert ganz rechts ohne Duplizierung und fügen Sie ihn in ein neues Array ein. (Wenn doppelte Werte erkannt werden, wird die aktuelle Schleife beendet und die nächste Beurteilungsrunde der Schleife der obersten Ebene beginnt.) Empfohlen
1 2 3 4 5 6 7 8 9 10 |
|
Stellen Sie fest, ob der Browser indexOf unterstützt. indexOf ist eine neue Methode von ecmaScript5. Sie wird von IE8 und niedriger nicht unterstützt (einschließlich IE8, IE8 unterstützt nur einen Teil von ecma5)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Die oben genannten 5 JS-Array-Deduplizierungsalgorithmus-Implementierungen werden Ihnen hoffentlich hilfreich sein.