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

如何实现员工列表按状态+字母排序 活跃记录置顶A-Z、非活跃置底A-Z

实现方案
  • 首先封装活跃状态判定逻辑:
    • 若signatureDate为空,直接判定为活跃
    • 若signatureDate不为空,将其转为标准日期对象和当前日期比较,大于等于当前日期则为活跃,否则为非活跃
  • 排序逻辑分两层执行:
    1. 优先按状态排序:活跃记录全部排在非活跃记录之前
    2. 状态相同的记录,按name字段的字母顺序升序排列
const employee = [
{
  name: 'jpat',
  signatureDate: '',
  businessType: 12346,
  originalFileName: 'hello.xls',
  agentW9id: 11,
  fileName: 'hello.xls',
  agentCode: 0,
  class: '',
  status: '',
},
{
  name: 'jcar',
  signatureDate: '09/10/2021',
  businessType: 12346,
  originalFileName: 'test.xls',
  agentW9id: 12,
  fileName: 'test.xls',
  agentCode: 0,
  class: '',
  status: '',
},
{
  name: 'Test',
  signatureDate: '09/23/2020',
  businessType: 12346,
  originalFileName: 'test.xls',
  agentW9id: 13,
  fileName: 'test.xls',
  agentCode: 0,
  class: 'inactive',
  status: 'Inactive',
},
{
  name: 'newTest',
  signatureDate: '10/9/2020',
  businessType: 12346,
  originalFileName: 'test.xls',
  agentW9id: 13,
  fileName: 'test.xls',
  agentCode: 0,
  class: 'inactive',
  status: 'Inactive',
},
{
  name: 'abc',
  signatureDate: '10/29/2021',
  businessType: 12346,
  originalFileName: 'test.xls',
  agentW9id: 13,
  fileName: 'test.xls',
  agentCode: 0,
  class: '',
  status: '',
},
{
  name: 'djhfj',
  signatureDate: '',
  businessType: 12346,
  originalFileName: 'test.xls',
  agentW9id: 13,
  fileName: 'test.xls',
  agentCode: 0,
  class: '',
  status: '',
},
];

// 判定是否为活跃记录
const isActive = (emp) => {
  if (!emp.signatureDate) return true;
  const signDate = new Date(emp.signatureDate);
  const now = new Date();
  // 重置时分秒避免当天的时间精度导致判断误差
  now.setHours(0, 0, 0, 0);
  signDate.setHours(0, 0, 0, 0);
  return signDate >= now;
}

// 执行排序
const sortedEmployee = employee.sort((a, b) => {
  const aActive = isActive(a);
  const bActive = isActive(b);
  // 优先按状态排序:活跃在前
  if (aActive && !bActive) return -1;
  if (!aActive && bActive) return 1;
  // 状态相同按名称升序排列
  return a.name.localeCompare(b.name);
});

console.log(sortedEmployee);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:48:05