我有以下收藏:
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'函数如下:
_.map(realty, 'entrances.units.contracts')
但“属性”迭代不适用于数组。
任何想法如何提取所有合同的集合?也许lodash链可能有所帮助,但我不知道如何使用它:/。
答案 0 :(得分:1)
这似乎可以解决问题
_(realty.entrances).flatMap('units').flatMap('contracts').value()
答案 1 :(得分:0)
没有lodash的一个可能性
var contractsArray = []
realty.entrances.forEach( e => {
let units = e.units;
units.forEach( u => contractsArray.push(u.contracts));
});
答案 2 :(得分:0)
如果你想获得所有合同,请使用lodash:
_.map(realty.entrances, e => e.units.map(u => u.contracts));