Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuyển mảng đối tượng thành đối tượng mảng trong JavaScript

Cho mảng đối tượng dữ liệu đội tuyển, chuyển thành đối tượng với key là vị trí (role), value là mảng tên cầu thủ.

Mảng mẫu:

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' }]

Hàm 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));

Duyệt mảng, nếu role đã có trong object thì push player, ngược lại tạo mảng mới.

Ví dụ hoàn chỉnh

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));

Kết quả

Đầu ra console:

{ Batsman: [ 'V Kohli', 'R Sharma' ], WicketKeeper: [ 'KL Rahul', 'R Pant' ], Bowler: [ 'B Kumar', 'M Shami' ] }