Was hältst du davon, _.find(collection, [predicate=_.identity], [fromIndex=0])
von lo-dash zu verwenden, um ein Objekt aus einem Array von Objekten nach dem Wert einer Objekteigenschaft zu erhalten. Du könntest etwas wie folgt machen:
var o = _.find(jsObjects, {'b': 6});
Argumente:
collection (Array|Object): Die zu untersuchende Sammlung.
[predicate=_.identity] (Function): Die pro Iteration aufgerufene Funktion.
[fromIndex=0] (number): Der Index, ab dem gesucht werden soll.
Rückgabewert
(*): Gibt das übereinstimmende Element zurück (in deinem Fall {a: 5, b: 6}), ansonsten undefined.
In Bezug auf die Leistungsfähigkeit ist _.find()
schneller, da es nur das erste Objekt mit der Eigenschaft {'b': 6}
zieht. Andererseits, wenn angenommen in deinem Array mehrere Objekte mit übereinstimmenden Sätzen von Eigenschaften (Schlüssel:Wert) enthalten sind, solltest du die Methode _.filter()
in Betracht ziehen. In deinem Fall, da dein Array nur ein Objekt mit dieser Eigenschaft enthält, würde ich _.find()
verwenden.