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

如何实现数组元素链式两两分组?尝试用Array.reduce()解决

解决方案

你的需求是将数组转换为相邻元素重叠配对的链式结构,之前的reduce代码逻辑是按索引奇偶拆分非重叠组,所以不符合预期。以下是两种简洁的reduce实现方案:

方案一:直观写法

const arr = ['A', 'B', 'C', 'D', 'E', 'F'];
const chainedGroups = arr.reduce((acc, curr, index) => {
  // 从第二个元素开始,和前一个元素组成配对
  if (index > 0) {
    acc.push([arr[index - 1], curr]);
  }
  return acc;
}, []);

console.log(chainedGroups);
// 输出:[['A','B'], ['B','C'], ['C','D'], ['D','E'], ['E','F']]

方案二:简洁箭头函数写法

const arr = ['A', 'B', 'C', 'D', 'E', 'F'];
const chainedGroups = arr.reduce((acc, curr, i) => 
  i ? [...acc, [arr[i-1], curr]] : acc, 
[]);

逻辑说明

核心思路是遍历数组时,仅针对第二个及以后的元素,将它与前一个索引的元素组成子数组,添加到累加器中。这样就能形成首尾相连的链式分组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:45:33