Sie können die Funktion Auswählen von Underscore.js Bibliothek.
Sie können es nicht mit einem Array machen, aber Sie können damit ein assoziatives Array wie ein Objekt erstellen. Sobald Sie es gemacht haben, können Sie es wie Hash verwenden.
%Vor% Hier ist ein Beispiel, dass der Prototyp das Array-Objekt ist. Hinweis: wird zum Beispiel angezeigt - find
ist kein guter Name für diese Funktion, und dies wird wahrscheinlich nicht für alle Arrays benötigt
Betrachten Sie stattdessen nur die Funktionsdefinition und erstellen Sie eine Funktion wie getObjVal
, die wie getObjVal(arr,'propName')
aufruft, ähnlich der Antwort von LaurenT.
Top-Antwort macht den Job. Hier ist eine Ein-Liner-Version von ihm mit lodash (wie Unterstreich zum größten Teil):
%Vor% In lodash ist select nur ein Alias für den Filter. Ich gebe ihm das mit Objekten gefüllte Datenfeld. Ich benutze _.has
als die Filterfunktion, da es genau das tut, was wir wollen: Überprüfen Sie, ob eine Eigenschaft existiert.
_.has
erwartet zwei Argumente:
Seit _.has
erwartet zwei Argumente, und ich weiß, dass einer von ihnen immer konstant ist (das Pfadargument). Ich verwende die Funktion _.partialRight
, um die Konstante key2
anzuhängen. _.partialRight
gibt eine neue Funktion zurück, die ein Argument erwartet: das zu inspizierende Objekt. Die neue Funktion prüft, ob obj.key2
existiert.
Heyas. Sie können die Funktionen .reduce () oder .transform () der lodash-Bibliothek verwenden, um dies zu implementieren. Lodash ist modularer als Unterstreichung (Underscore um 5kb, Lodash um 17kb), ist aber generell leichter, da Sie nur die spezifischen Module enthalten, die Sie benötigen (Siehe: Ссылка zur Diskussion). Für diese Demonstration werde ich das gesamte Modul importieren (in der Regel kein Problem im Backend): Ich habe diese Schnipsel für jedes Szenario geschrieben, das sowohl numerische als auch nicht-numerische Argumente behandelt.
Ziehen Sie lodash:
%Vor%_. reduce () zu where-Klausel:
%Vor%_. transform () in where-Klausel:
%Vor%Ich hoffe, das hilft.
Tags und Links javascript arrays json