Filtrage des propriétés d'objet en fonction de la valeur
Est-il un moyen élégant de filtrage falsey propriétés de cet objet avec lodash/trait de soulignement? Similaire à la façon dont _.compact(array)
supprime falsey éléments de tableaux
donc, à partir de
{
propA: true,
propB: true,
propC: false,
propD: true,
}
retour
{
propA: true,
propB: true,
propD: true,
}
source d'informationauteur user3598395
Vous devez vous connecter pour publier un commentaire.
Avant Lodash 4.0
Vous voulez
_.pick
elle prend une fonction en argument et renvoie un objet contenant les clés pour lesquels cette fonction renvoie truthy. De sorte que vous pouvez faire:Ou même de façon plus succincte:
Lodash 4.0
Lodash 4.0 diviser le
_.pick
fonction dans_.pick
qui prend un tableau de propriétés, et_.pickBy
qui prend une fonction. Alors maintenant, il seraitOu, depuis
_.pickBy
par défaut à l'aide de_.identity
comme deuxième argument, il peut juste être écrite comme suit:Si vous utilisez lodash, je vous recommande de quelque chose comme ceci:
La choisir() fonction génère un nouvel objet qui comprend des propriétés qui le callback retourne truthy pour. Donc, il suffit d'utiliser l' (identité) fonction comme la fonction de rappel, puisqu'il sera tout juste de retour de chaque valeur de la propriété.
Malheureusement je ne peut pas directement des commentaires sur les posts ci dessus, de sorte que je créer ce post supplémentaires.
Depuis Lodash v4 la fonctionnalité décrite ci-dessus a été déplacé à _.pickBy. Avec
_.identity
par défaut, vous pouvez également modifier votre code pour:Voir ce JSBin pour un exemple.