You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分对象键并将员工信息对象转换为对象数组?

扁平化员工对象转结构化数组的实现

原始数据:

const employeeDetails = {
  "admin-name": "deepak",
  "admin-age": "29",
  "tester-name": "raju",
  "tester-age": "26",
};

期望输出:

const employeeDetails = [
  {
    _id: "admin",
    name: "deepak",
    age: 29,
  },
  {
   _id: "tester",
   name: "raju",
   age: 26,
  },
];

直接上实现代码:

const employeeDetails = {
  "admin-name": "deepak",
  "admin-age": "29",
  "tester-name": "raju",
  "tester-age": "26",
};

const result = Object.entries(employeeDetails).reduce((acc, [key, value]) => {
  const [role, prop] = key.split('-');
  let employee = acc.find(item => item._id === role);
  
  if (!employee) {
    employee = { _id: role };
    acc.push(employee);
  }
  
  employee[prop] = prop === 'age' ? Number(value) : value;
  return acc;
}, []);

实现逻辑拆解:

  • 用Object.entries()把原始对象转成键值对数组,方便逐个处理
  • 把每个键按-拆成角色和属性两部分,比如admin-name拆成admin和name
  • 检查结果数组里有没有当前角色的对象,没有就新建一个塞进去
  • 属性赋值时,把年龄字符串转成数字类型,其他属性保留原格式
  • 最终得到符合要求的结构化数组

内容的提问来源于stack exchange,提问作者Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:55:13