如何使用javascript es6迭代器函数将员工数组变量转换为部门数组变量?我正在寻找一个有效的解决方案。
出发地:
var employees = [
{ name: 'John', department: 'Digital Experience' },
{ name: 'Doe', department: 'Digital Transformation' },
{ name: 'Symon', department: 'Digital Planning' },
{ name: 'Joey', department: 'Digital Experience' },
{ name: 'Abul', department: 'Digital Experience' },
{ name: 'Smith', department: 'Digital Experience' },
{ name: 'Ajad', department: 'Digital Transformation' },
{ name: 'Rahim', department: 'Digital Transformation' },
{ name: 'Luke', department: 'Digital Planning' },
];To:
var departments = [
{
department: 'Digital Experience',
employeeNames: ['Johm', 'Joey', 'Abul', 'Smith']
},
{
department: 'Digital Transformation',
employeeNames: ['Doe', 'Ajad', 'Rahim']
},
{
department: 'Digital Planning',
employeeNames: ['Symon', 'Luke']
}
]发布于 2018-12-14 06:59:28
我相信还有其他的方法,这似乎是相当短的。
var e = [
{ name: 'John', department: 'Digital Experience' },
{ name: 'Doe', department: 'Digital Transformation' },
{ name: 'Symon', department: 'Digital Planning' },
{ name: 'Joey', department: 'Digital Experience' },
{ name: 'Abul', department: 'Digital Experience' },
{ name: 'Smith', department: 'Digital Experience' },
{ name: 'Ajad', department: 'Digital Transformation' },
{ name: 'Rahim', department: 'Digital Transformation' },
{ name: 'Luke', department: 'Digital Planning' },
];
const departments = [...new Set(e.map(x => x.department))].map(y => {
return {
department: y,
employeeNames: e.filter(z => z.department === y).map(w => w.name)
}
})
console.log(departments)
https://stackoverflow.com/questions/53774685
复制相似问题