嘿所有我正在尝试获取一组对象(员工)并将它们映射到一个新对象,以便描绘组织的层次结构。因此,每个经理都会有一个密钥和一个附加到密钥的数组,其中包含所有报告的名称。
我不确定为什么我无法将我的员工姓名推送到各自经理的阵列。这似乎将我的对象键设置为数组而不是1,2,3,4。
任何指针都会受到赞赏。
Repl.it:https://repl.it/JeMh/2
let data = [
{
name: 'ceo',
id: 1,
mgr: null,
},
{
name: 'vp1',
id: 2,
mgr: 1,
},
{
name: 'vp2',
id:3,
mgr: 1,
},
{
name: 'mgr',
id:4,
mgr: 2,
},
];
function displayOrg(data) {
let org = {};
for(let i = 0; i < data.length; i++) {
let current = data[i];
for(let key in current){
if(org[key] !== current.id || current.mgr){
org[current.id] = []
}
}
for(let key in org){
console.log(current.mgr);
console.log(org[key])
if(current.mgr === org[key]){
console.log("THIS HAPPEN");
org[key].push(current.name);
}
}
}
return org;
}
displayOrg(data);
expected resulted: { '1': [vp1,vp2], '2': [mgr], '3': [], '4': [] }
答案 0 :(得分:0)
看起来非常直接:
function getMngd(data, mngrId){
return data.filter(emp => emp.mgr === mngrId).map(emp => emp.name)
}
data.reduce((p,c)=>{
const {id} = c;
p[id] = getMngd(data, id);
return p;
},{})