我有一个数据结构,它是一个对象数组,每个对象包含一个数组。我创建了一个函数,它返回该子数组中的每个对象,并将它们连接成一个新数组。
我想要的是将父数组中每个对象的一个属性与子数组中的每个对象相关联,然后将其添加到新数组中。
在代码中解释:
var clubData = [
{ club : 'Manchester United',
squad: [
{name : 'Young'},
{name : 'Rooney'},
{name : 'Mata'}
],
}
{ club : 'Chelsea',
squad: [
{name : 'Hazard'},
{name : 'Fabregas'},
{name : 'Ivanovic'},
]
}
]
在这里,我从“小队”中提取了每一个对象。可变...
var allPlayers = [
{name : 'Hazard'},
{name : 'Fabregas'},
{name : 'Ivanovic'},
{name : 'Young'},
{name : 'Rooney'},
{name : 'Mata'}
]
... JS
allPlayers = clubData.reduce(function(a, c){
return a.concat(c.squad);
}, []);
相同,但要将每个对象添加原始数组中的原始club
属性到每个结果对象。
var allPlayers2 = [
{name : 'Hazard'
club : 'Chelsea' },
{name : 'Fabregas'
club : 'Chelsea' },
{name : 'Ivanovic'
club : 'Chelsea' },
{name : 'Young'}
club : 'Manchester United' },
{name : 'Rooney'
club : 'Manchester United' },
{name : 'Mata'
club : 'Manchester United' }
]
有谁知道我会怎么做呢?
提前致谢。
答案 0 :(得分:1)
var allPlayers = clubData.reduce(function(a, c){
var squad = c.squad;
for (var i = 0; i < squad.length; i++) {
squad[i].club = c.club;
}
return a.concat(squad);
}, []);