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

按顺序分组重复项(非常规去重需求)

解决连续相同number值的顺序分组问题

核心逻辑是按遍历顺序,将连续拥有相同number值的元素归为一组,而非把所有相同number的元素合并到同一组。以下是具体实现方案(以JavaScript为例):

实现代码

const originalArray = [
  {name: 'A', number: 1, order: 1},
  {name: 'B', number: 1, order: 2},
  {name: 'C', number: 1, order: 3},
  {name: 'D', number: 2, order: 4},
  {name: 'E', number: 2, order: 5},
  {name: 'F', number: 1, order: 6}
];

const groupedArray = originalArray.reduce((result, current) => {
  // 结果数组为空,或当前元素number与最后一组的元素number不同时,新建分组
  if (result.length === 0 || current.number !== result[result.length - 1][0].number) {
    result.push([current]);
  } else {
    // 否则将当前元素加入最后一组
    result[result.length - 1].push(current);
  }
  return result;
}, []);

console.log(groupedArray);

逻辑说明

  1. 用reduce遍历原数组,初始化空数组作为分组结果容器
  2. 遍历每个元素时做判断:
    • 若结果数组为空,直接创建新分组存入当前元素
    • 若当前元素的number与结果数组最后一组的元素number不一致,创建新分组
    • 若一致,将当前元素追加到最后一组中
  3. 遍历完成后,reduce返回的就是按顺序连续分组后的目标数组

这种方式严格遵循原数组的顺序,只对**连续相同number**的元素分组,完全匹配你需要的转换效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:35:13