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

如何按EmployeeName升序排序按EmployeeId分组的数组?

按EmployeeName对分组后的员工数据升序排序

现有一组按EmployeeId分组的员工数据,需要按EmployeeName进行升序排序,最终返回与输入格式一致的结构。

输入数据

{
  13: [{employeeId:13,employeeName:"Nova"}],
  21: [{employeeId:21,employeeName:"Avinash"},{employeeId:21,employeeName:"Avinash"}],
  23: [{employeeId:23,employeeName:"Mamatha"}],
  24: [{employeeId:24,employeeName:"Swetha"}]
}

解决方法

可以通过以下步骤实现排序:

  • 将对象转换为键值对数组,方便进行排序操作
  • 根据每个分组中员工的employeeName进行升序比较(因分组内员工名称一致,取每组第一个员工的名称即可)
  • 将排序后的键值对数组重新转换为对象

具体代码实现如下:

const groupedData = {
  13: [{employeeId:13,employeeName:"Nova"}],
  21: [{employeeId:21,employeeName:"Avinash"},{employeeId:21,employeeName:"Avinash"}],
  23: [{employeeId:23,employeeName:"Mamatha"}],
  24: [{employeeId:24,employeeName:"Swetha"}]
};

// 转换为键值对数组并按EmployeeName升序排序
const sortedEntries = Object.entries(groupedData).sort((a, b) => {
  const nameA = a[1][0].employeeName.toLowerCase();
  const nameB = b[1][0].employeeName.toLowerCase();
  return nameA.localeCompare(nameB);
});

// 转回目标格式的对象
const sortedGroupedData = Object.fromEntries(sortedEntries);

console.log(sortedGroupedData);

预期输出

{
  21: [{employeeId:21,employeeName:"Avinash"},{employeeId:21,employeeName:"Avinash"}],
  23: [{employeeId:23,employeeName:"Mamatha"}],
  13: [{employeeId:13,employeeName:"Nova"}],
  24: [{employeeId:24,employeeName:"Swetha"}]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:36:59