_.méthode de sélection, pour que les sous propriété dans un tableau d'objets
Je suis à l'aide de _.méthode de sélection de la manière suivante
supposons que j'ai un tableau de chaînes de caractères qui ne sont rien, mais les noms de propriété je veux obtenir à partir de chaque objet du tableau d'objets
var wantedPropArray=["prop1","prop2","prop3.name"];
Ci-dessous mes objets tableau
var objectArray = [
{"prop1":"prop1Data1","prop2":"prop2Data1","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data1","prop5":"prop5Data1"},
{"prop1":"prop1Data2","prop2":"prop2Data2","prop3":{"name":"Cat","age":"24","class":"graduate"},"prop4":"prop4Data2","prop5":"prop5Data2"}
{"prop1":"prop1Data3","prop2":"prop2Data3","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data3","prop5":"prop5Data3"}
{"prop1":"prop1Data4","prop2":"prop2Data4","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data4","prop5":"prop5Data4"}
]
for( var item in objectArray ){
var objectArrayOnlySelectedProperties = _.pick(objectArray[item] , wantedPropArray);
}
supposons que, pour la première itération permet de voir objectArrayOnlySelectedProperties de données,
Je suis
objectArrayOnlySelectedProperties = {"prop1":"prop1Data1","prop2":"prop2Data1"};
Je m'attends à me donner le résultat de quelque chose comme ce
objectArrayOnlySelectedProperties = {"prop1":"prop1Data1","prop2":"prop2Data1","prop3.name":"Tom"};
ce que je veux dire, c'est _.méthode de sélection n'est pas capable de regarder dans prop3 et me prop3.nom.
Quelqu'un peut-il suggérer comment utiliser des tirets de soulignement' méthode de sélection, pour que les sous propriétés de chaque objet dans un tableau.
Merci d'avance
OriginalL'auteur bhargav | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
Il semble que ce n'est pas pris en charge avec underscorejs hors de la boîte. Mais n'est-ce gist qu'offre le soutien d'un mélange:
https://gist.github.com/furf/3208381
Voici le code à l'aide de la gist à faire ce que vous avez besoin de: http://jsfiddle.net/wHXCv/1/
J'ai mis à jour ma réponse en réponse à ce commentaire.
merci beaucoup Mike pour ta réponse,cela m'aide beaucoup
rangé un peu plus - le plus tôt solution a été ennuyeux moi:)
semble aime un peu compliqué solution, mais merci encore
OriginalL'auteur Mike Hogan
Je ne sais pas à propos de Underscore.js mais vous pouvez essayer ce code:
OriginalL'auteur haitaka
Trait De Soulignement Profonde Pick Plugin
J'ai créé ce plugin pour underscore.js pour aider avec des problèmes de ce genre.
Profonde Choisir Pluging
Disponible au MNP et Bower
Exemple:
OriginalL'auteur Mohsen
J'ai créé un simple résumé exactement à cela:
https://gist.github.com/peterslivka/9055188
Vous pouvez trouver de travail exemple ici: http://jsfiddle.net/TFfHk/
OriginalL'auteur svestka
Au cas où quelqu'un y trouve ici. Le
_.pluck
fonction de ce que vous voulez. Vient avec un trait de soulignement.http://underscorejs.org/#pluck
OriginalL'auteur styks
lodash a quelques grandes méthodes pour la vérification et réglage de la profondeur propriétés de l'objet: a, ensemble, & obtenir. Vous pouvez utiliser ces fonctions pour construire votre propre deepPick /deepPluck fonction. Ci-dessous est un ES6 style de fonction qui s'appuie sur lodash et utilise le construit dans le Tableau.réduire la méthode. Juste une remarque qui lodash utilise le point séparateur pour les propriétés imbriquées.
OriginalL'auteur nof