Vergleich von zwei arrays in Javascript Zurückgeben Unterschiede
Vorausgesetzt, haben wir:
array1 = ['A', 'B', 'C', 'D', 'E']; array2 = ['C', 'E'];
Ist es eine bewährte und schnelle Lösung für den Vergleich von zwei arrays gegeneinander, kehren Sie ein array ohne Werte erscheinen in beiden arrays (C-und E-hier).
Also:
array3 = ['A', 'B', 'D']
sollte die Ausgabe der Lösung. (jquery beteiligt sein können)
thx.
- Sind beide arrays immer sortiert, wie in deinem Beispiel? Wenn dem so ist, kann dies in linearer Zeit durch nur zu Fuß den arrays.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein Satz Unterschied. Eine einfache Realisierung ist:
Dies ist O(m * n), wo diejenigen sind, die Größen der arrays. Sie kann tun es in O(m + n), aber Sie brauchen, um eine Art von hash-set. Sie können ein JavaScript-Objekt, als eine einfache hash-set für Saiten. Für relativ kleine arrays, die oben sollte in Ordnung sein.
Ich nahm Matthews Lösung, aber nicht wollen, zu ignorieren, eine andere schnellere Lösung habe ich gerade gefunden.
Quelle: Optimieren Loops Vergleichen, Zwei Arrays
eine bewährte schnelle Lösung, die ich kenne, ist eine binäre Suche, die Sie verwenden können, nach dem Sie Sortieren eines arrays. so ist die Lösung braucht Zeit und hängt von den Sortier-Algorithmus. aber ist mindestens log(N).