Was ist der schnellste Algorithmus, um von etwas wie diesem zu kommen:
%Vor%zu etwas wie diesem:
%Vor%Bisher ist das, was ich mir ausgedacht habe:
%Vor%das funktioniert gut, aber es scheint irgendwie tollpatschig. Gibt es einen besseren Weg? Würde etwas wie reduce () arbeiten und wäre das schneller?
Sie könnten tatsächlich Array.prototype.reduce
verwenden:
Dabei ist p
das Ergebnis der vorherigen Iteration, anfangs {}
, und c
ist das aktuelle Element des Arrays.
Es ist wahrscheinlich nicht schneller als array.forEach
, aber es ist IMHO sauberer. Ich glaube nicht, dass es eine einfachere Implementierung als diese gibt.
Hinweis: Eine Funktion, die genau dies erfordert, existiert bereits in der Underscore Bibliothek: _.object(array)
Sie können die gesamte Sache in Array.prototype.reduce
einfügen. wie das
Wir sammeln nur die Schlüssel-Wert-Paare im result
-Objekt und schließlich wird das Ergebnis von reduce
das Objekt result
sein und wir geben es als das tatsächliche Ergebnis zurück.
Tags und Links javascript arrays object