Selon le tutoriel ici ,
Une collection peut être un tableau ou un objet, un tableau associé en JavaScript
cela signifie-t-il que toutes les fonctions de collection
s'appliquent également aux littéraux d'objet .Par exemple, je voulais choisir les valeurs en fonction d'une condition. Dire,
var obj = {
"1": {id: 1, val: 2},
"2": {id: 2, val: 5},
"3": {id: 3, val: 8},
"4": {id: 4, val: 1}
}
Je veux trouver le champ max et min de val. En regardant l'API, je pensais utiliser pluck
pour obtenir un tableau de val
, puis faites min
et max
.
Merci.
cela signifie-t-il que toutes les fonctions de la collection sont également applicables aux littéraux d'objet?
Oui .
puis-je appliquer pluck à object (comme l'exemple de l'API montre l'utilisation dans un tableau d'objets)
L'as tu essayé? Oui, vous pouvez, mais vous allez récupérer un tableau.
y a-t-il un meilleur moyen?
Math.min.apply(null, _.pluck(obj, "val"))
(ou _.min(_.pluck(obj, "val"))
) pour obtenir le minimum valeur convient. Cependant, si vous voulez obtenir l’objet entier (avec l’id), vous pouvez aussi utiliser le paramètre iterator
of min/max:
var lowest = _.min(obj, function(o){return o.val;});
Une autre façon de le faire, et si vous voulez renvoyer plusieurs lignes qui ont toutes une valeur élevée, est la suivante:
_.where(obj, {score: _.max(_.pluck(obj, 'value'))});