滴滴前端外包手写代码

93 阅读1分钟
const input = [
  { id: 1, name: 'Alice', dept: 'HR', status: 'active' },
  { id: 2, name: 'Bob', dept: 'IT', status: 'inactive' },
  { id: 3, name: 'Charlie', dept: 'HR', status: 'active' }
];
  
/* 要求:
  1. 按dept分组,合并同部门人员
  2. 过滤掉status='inactive'的记录
  3. 输出格式:{ HR: ['Alice', 'Charlie'], IT: [] }

*/

function processData(data) {
  // 候选人实现此处代码
    // 先拿到所有出现过的部门,初始化结果对象
  const result = {};
  data.forEach(item => {
    if (!result[item.dept]) {
      result[item.dept] = [];
    }
  });
  // 再把 active 的名字按部门填进去
  data.forEach(item => {
    if (item.status === 'active') {
      result[item.dept].push(item.name);
    }
  });
  return result;  
}