/ Mappage / collections Lodash de collections imbriquées - javascript, lodash

Cartographie Lodash des collections imbriquées - javascript, lodash

J'ai la collection suivante:

var realty = {
name: "Realty A",
entrances: [
{
name: "Entrance A",
units: [
{name: "unitA", contracts: [{contractNo: "no.963"}, {contractNo: "no.741"}]},
{name: "unitB", contracts: [{contractNo: "no.789"}, {contractNo: "no.564"}]}
]
},
{
name: "Entrance B",
units: [
{name: "unitC", contracts: [{contractNo: "no.419"}, {contractNo: "no.748"}]},
{name: "unitD", contracts: [{contractNo: "no.951"}, {contractNo: "no.357"}]}
]
}
]
}

Et j'essaie d'extraire une collection de contrats. J'ai essayé d'utiliser la fonction "map" de lodash comme suit: _.map(realty, "entrances.units.contracts") mais "property" iterate ne fonctionne pas sur les tableaux.

Toute idée de comment puis-je extraire la collection de tous les contrats? La chaîne lodash pourrait peut-être aider, mais je ne sais pas comment l'utiliser.

Réponses:

1 pour la réponse № 1

Cela semble faire l'affaire

_(realty.entrances).flatMap("units").flatMap("contracts").value()

0 pour la réponse № 2

Une posibilité sans lodash

var contractsArray = []

realty.entrances.forEach( e => {
let units = e.units;
units.forEach( u => contractsArray.push(u.contracts));
});

0 pour la réponse № 3

Si vous voulez obtenir tous les contrats en utilisant lodash:

_.map(realty.entrances, e => e.units.map(u => u.contracts));