チュートリアルに従って ここ 、
コレクションは配列またはオブジェクト、JavaScriptの関連配列のいずれかです。
collection
の下のすべての関数がオブジェクトリテラルに等しく適用できることを意味しますか。たとえば、条件に基づいて値を選択する必要がありました。いう、
var obj = {
"1": {id: 1, val: 2},
"2": {id: 2, val: 5},
"3": {id: 3, val: 8},
"4": {id: 4, val: 1}
}
Valフィールドの最大値と最小値を見つけたい。 APIを見て、pluck
を使用してval
の配列を取得し、min
とmax
を実行することを考えていました。
ありがとう。
コレクションの下にあるすべての関数がオブジェクトリテラルに等しく適用できることを意味しますか?
はい 。
オブジェクトにpluckを適用できますか(apiの例ではオブジェクトの配列での使用方法を示しています)
試しましたか?はい、できますが、配列を取得します。
より良い方法はありますか?
最小valueを取得するためのMath.min.apply(null, _.pluck(obj, "val"))
(または_.min(_.pluck(obj, "val"))
)は問題ありません。ただし、オブジェクト全体(IDを含む)を取得する場合は、 iterator
パラメーター of min/maxも使用できます。
var lowest = _.min(obj, function(o){return o.val;});
これを行う別の方法は、すべてが高い値を持つ複数の行を返したい場合に最適です:
_.where(obj, {score: _.max(_.pluck(obj, 'value'))});