web-dev-qa-db-fra.com

trait of soulignement for find

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.

  • puis-je appliquer pluck à object (comme l'exemple de l'API montre l'utilisation dans un tableau d'objets)
  • y a-t-il un meilleur moyen?

Merci.

23
bsr

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;});
54
Bergi

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'))});
0
Matt Fletcher