JavaScript 将对象数组转换为数组对象
javascriptweb developmentobject oriented programming更新于 2025/9/25 13:00:17
假设,我们有以下关于球队的数据,这些数据排列在一个对象数组中,我们的任务是将这些数据转换为一个对象,其键为角色,值是球员姓名数组。
我们的示例数组 −
const team = [{
role: 'Batsman',
player: 'V Kohli'
}, {
role: 'Wicket Keeper',
player: 'KL Rahul'
}, {
role: 'Batsman',
player: 'R Sharma'
}, {
role: 'Wicket Keeper',
player: 'R Pant'
}, {
role: 'Bowler',
player: 'B Kumar'
}, {
role: 'Bowler',
player: 'M Shami'
}, ]
让我们定义一个函数 objectify(),该函数接受数组作为参数并返回相应的对象。
其代码为 −
const objectify = (team) => {
const teamObject = {};
team.forEach(member => {
if(teamObject[member.role]){
teamObject[member.role].push(member.player);
}else{
teamObject[member.role] = [member.player];
}
});
return teamObject;
}
console.log(objectify(team));
在这里,我们逐个循环遍历每个数组项,如果它存在于 teamObject 中,我们将玩家推送到它的值中,否则我们为其分配一个包含单个玩家的数组
这是完整的代码 −
示例
const team = [{
role: 'Batsman',
player: 'V Kohli'
}, {
role: 'Wicket Keeper',
player: 'KL Rahul'
}, {
role: 'Batsman',
player: 'R Sharma'
}, {
role: 'Wicket Keeper',
player: 'R Pant'
}, {
role: 'Bowler',
player: 'B Kumar'
}, {
role: 'Bowler',
player: 'M Shami'
}, ]
const objectify = (team) => {
const teamObject = {};
team.forEach(member => {
if(teamObject[member.role]){
teamObject[member.role].push(member.player);
}else{
teamObject[member.role] = [member.player];
}
});
return teamObject;
}
console.log(objectify(team));
输出
控制台中此代码的输出为 −
{
Batsman: [ 'V Kohli', 'R Sharma' ],
WicketKeeper: [ 'KL Rahul', 'R Pant' ],
Bowler: [ 'B Kumar', 'M Shami' ]
}
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

