在javascript中从2个列表创建字典

在javascript中从2个列表创建字典,javascript,Javascript,我正试图从两个列表中创建一个字典,departmentslist(字符串列表)作为键,userslist(对象列表)作为值 下面是片段 let departments=['IT','HR']; 让用户=[{'name':'John','depent':'IT'},{'name':'Mary','depent':'HR'},{'name':'Carlos','depent':'HR'},{'name':'James','depent':'HR'}; //预期结果 让dict={ 'IT':[{'

我正试图从两个列表中创建一个字典,departmentslist(字符串列表)作为键,userslist(对象列表)作为值

下面是片段

let departments=['IT','HR'];
让用户=[{'name':'John','depent':'IT'},{'name':'Mary','depent':'HR'},{'name':'Carlos','depent':'HR'},{'name':'James','depent':'HR'};
//预期结果
让dict={
'IT':[{'name':'John'}],
'HR':[{'name':'Mary'},{'name':'Carlos'}{'name':'James'}]

};通过用户循环:

const dict={};
for(const user of users){
如果(用户在dict中离开){
dict[用户.离开].推送(用户);
}否则{
dict[用户离开]=[用户];
}
//如果不希望在最终输出中使用depart属性,请取消对此行的注释
//删除user.deep;
}

您应该在部门中循环并筛选用户,以提取部门中的用户

let departments = ['IT','HR'];
let users = [{'name' : 'John', 'depart':'IT'}, {'name' : 'Mary', 'depart':'HR'}, {'name' : 'Carlos', 'depart':'HR'}, {'name' : 'James','depart':'HR'}];


//expected result
let dict = {
  'IT': [{'name' : 'John'}],
  'HR': [{'name' : 'Mary'}, {'name' : 'Carlos'}, {'name' : 'James'}]
};

var depDictionary ={};
for (let index = 0; index < departments.length; index++) {
  const department = departments[index];
  depDictionary[department] = users.filter(function(user){ 
    return user.depart == department;
  }).map(function(user){
    return {name:user.name};
  });
}
let departments=['IT','HR'];
让用户=[{'name':'John','depent':'IT'},{'name':'Mary','depent':'HR'},{'name':'Carlos','depent':'HR'},{'name':'James','depent':'HR'};
//预期结果
让dict={
'IT':[{'name':'John'}],
'HR':[{'name':'Mary'},{'name':'Carlos'},{'name':'James'}]
};
var-depDictionary={};
for(让index=0;index
嗨!你在这里的最佳选择是做你的研究,为相关的主题,所以,并尝试一下。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。背后的逻辑是什么?如果
用户的长度
为6,会发生什么?我在用户中添加了一个离开值,但为什么我要按离开进行筛选或排序?我在用户中添加了一个离开值,但为什么我要按离开进行筛选或排序?@Xris我编辑了我的答案。我感谢你花时间回答这个精彩的问题,谢谢你的朋友。