Javascript 嵌套集合的Lodash映射

Javascript 嵌套集合的Lodash映射,javascript,lodash,Javascript,Lodash,我有以下收藏: 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'},

我有以下收藏:

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'}]}
      ]
    }
  ]
}
我正试图提取合同集合。 我尝试使用lodash“map”函数,如下所示:
\uuu.map(realty,'entals.units.contracts')
但是'property'迭代在数组上不起作用


知道如何提取所有合同的集合吗?也许lodash chain能帮上忙,但我不知道如何使用它:/。

这似乎能奏效

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

一种不含lodash的可能性

var contractsArray = []

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

如果要获得所有合同,请使用lodash:

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