Lodash Sortierung nach externem Array

7

Ich habe ein Array mit Schlüsseln wie folgt:

%Vor%

und eine Sammlung, die diese Schlüssel in jedem Objekt wie folgt hat:

%Vor%

Gibt es eine schnelle Möglichkeit, die Sammlung basierend auf der Reihenfolge der Schlüssel im ersten Array zu sortieren?

    
silintzir 25.02.2015, 13:06
quelle

3 Antworten

18
%Vor%     
idbehold 25.02.2015 13:13
quelle
4

Eingabe:

%Vor%
  1. Erstellen Sie zuerst ein Indexobjekt mit _.reduce , wie diesem

    %Vor%
  2. Und dann map die Elemente des ersten Arrays mit den Objekten aus dem indexObject , wie dieses

    %Vor%

Ausgabe

%Vor%

Hinweis: Diese Methode ist sehr effizient, wenn Sie so viele Objekte sortieren möchten, weil dadurch die lineare Suche im zweiten Array reduziert wird, wodurch die gesamte Logik in O ( M * N) Zeitkomplexität.

    
thefourtheye 25.02.2015 13:12
quelle
2

Sie können indexBy () und at () , um Ihre Sammlung zu sortieren. Der Vorteil ist, dass Code und Performance prägnant sind. Die Verwendung von sortBy() macht hier den Trick, aber Ihr externes Array ist bereits sortiert:

%Vor%

Mit at() können Sie über die sortierte externe Sammlung iterieren und eine neue Sammlung aus der Quelle collection erstellen. Die Quellensammlung wurde mit indexBy() in ein Objekt transformiert. Sie tun dies, indem Sie bei () für jedes% code% -Zugriff einen Schlüsselzugriff verwenden.% Co_de%.

    
Adam Boduch 25.02.2015 18:13
quelle