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

如何对未知unit取值的JS对象数组按unit属性分组排序

实现方案

可以用Array.prototype.reduce先按unit值分组,再根据需要对分组结果排序即可,不需要预先知道unit的所有可能取值:

基础分组代码

const array = [
  { unit: 5, id: 'five'},
  { unit: 200, id: 'some22'},
  { unit: 100, id: 'recall'},
  { unit: 5, id: 'some'},
];

// 第一步:按unit值构建分组映射
const groupMap = array.reduce((map, item) => {
  // 不存在对应unit分组时先初始化空数组
  if (!map.has(item.unit)) {
    map.set(item.unit, [])
  }
  map.get(item.unit).push(item)
  return map
}, new Map())

// 第二步:转换为目标二维数组格式
const result = Array.from(groupMap.values())

如果需要分组按照unit的数值大小排序,新增一步key排序逻辑即可:

带unit升序的分组代码

const sortedResult = Array.from(groupMap.keys())
  .sort((a, b) => a - b) // 要降序排序改为 b - a 即可
  .map(unit => groupMap.get(unit))

运行带排序的代码后输出结果为:

[
  [ { unit: 5, id: 'five' }, { unit: 5, id: 'some' } ],
  [ { unit: 100, id: 'recall' } ],
  [ { unit: 200, id: 'some22' } ]
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:36:04