À souligner js, puis-je obtenir plusieurs colonnes avec plumer méthode après l'entrée où la méthode que linq sélectionnez projection
var people = [
{firstName : "Thein", city : "ny", qty : 5},
{firstName : "Michael", city : "ny", qty : 3},
{firstName : "Bloom", city : "nj", qty : 10}
];
var results=_.pluck(_.where(people, {city : "ny"}), 'firstName');
Par exemple : j'ai besoin de firstName
et qty
.
Vous devez vous connecter pour publier un commentaire.
À un projet à plusieurs propriétés, vous devez
map
, de ne pas arracher:(Fiddle)
Noter que, si vous vouliez, vous pourriez créer un helper "pluckMany" qui fait la même chose que de le pincer avec la variable d'arguments:
Vous pouvez utiliser le
_.mixin
une fonction pour ajouter un "pluckMany" la fonction de la_
espace de noms. En utilisant cela, vous pouvez écrire simplement:(Fiddle)
TL;DR Utilisation :
Mais s'il vous plaît lisez la suite pour des explications que je me sens le processus de trouver cette solution est plus intéressante que la réponse réelle.
La tendance générale serait (il fonctionne avec
lodash
trop) :_.map(array, function(obj) { return _.pick(obj, 'x', 'y', 'z'); });
Compte tenu de ce général
map
fonction qui transforme chaque élément d'une collection, il y a de multiples façons de s'adapter à votre situation particulière (qui se portent garants de la flexibilité desmap
, qui est un bloc de construction de base des programmes fonctionnels).Permettez-moi de présenter ci-dessous plusieurs façons de mettre en œuvre notre solution :
Si vous aimez cette façon d'écrire le code avec
underscore
oulodash
, je suggère fortement que vous regardez de la programmation fonctionnelle, comme ce style de l'écriture ainsi que de nombreuses fonctions (map
,reduce
parmi beaucoup d'autres) viennent de là.Remarque : C'est apparemment une question commune que dans le trait de soulignement :
https://github.com/jashkenas/underscore/issues/1104
Ce n'est apparemment pas un hasard si ceux-ci sont laissés hors de trait de soulignement/lodash : "la composabilité est mieux que les fonctionnalités". On pourrait aussi dire que
do one thing and do it well
. C'est aussi pourquoi_.mixin
existe.Ma compréhension est l'auteur de la question veut prendre un tableau d'objets avec de nombreuses propriétés et de la bande de chaque objet jusqu'à une petite liste de propriétés.
Il existe une myriade de façons de le faire avec _ , mais j'aime bien cette façon la mieux. Passer un résultat vide de l'objet qui sera "présent" à l'intérieur de la fonction. Itérer avec _each , et _pick les champs que vous souhaitez:
Yep, je souhaite
pluck
disposait d'une option de passage d'un tableau, mais en attendant, vous pouvez faire:Qu'un linéaire d'en sauver quelques lignes:
YAAUu-Yep une Autre Réponse à l'Aide de soulignement...
JS:
HTML:
Nous n'avons pas à utiliser les plumer, omettre faire l'affaire).