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

无需拆分数组:按子数组匹配+日期排序对象数组的方案咨询

优化后的单次数组排序实现

直接通过自定义Array.sort()的比较器规则即可实现,无需拆分多个子数组:

const finalArr = jobs.sort((a, b) => {
  // 第一优先级:匹配指定role的条目排前面
  const aHasRole = a.role.includes(role)
  const bHasRole = b.role.includes(role)
  if (aHasRole && !bHasRole) return -1
  if (!aHasRole && bHasRole) return 1
  // 同一分组内按日期升序排列
  return new Date(a.date) - new Date(b.date)
})

方案说明

  • 排序逻辑按优先级分层处理:优先判断是否匹配目标角色,匹配项权重高于未匹配项,会自动排在数组前半段
  • 同属匹配/未匹配分组的条目,将日期转换为时间戳做差即可实现升序排序,若需要降序仅需调换a.date和b.date的位置
  • 相比拆分过滤再合并的方案,仅需要一次排序遍历,减少了数组遍历次数,代码逻辑更聚合简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:48:04