JavaScript如何按连续数字规则将数组分割为指定长度的子数组块
JavaScript连续数字数组定长分块实现方案
核心逻辑
- 遍历原始数组,临时存储当前正在收集的连续数字块
- 每次新增元素时校验连续性:当前元素必须等于临时块最后一个元素 + 1,否则中断当前块的收集,长度不足4的临时块直接丢弃
- 连续收集过程中,临时块长度达到4时,将其存入最终结果数组,清空临时块继续收集后续元素
- 遍历结束后剩余长度不足4的临时块直接丢弃,不纳入最终结果
代码实现
function chunkContinuous(arr) { const result = []; let currentChunk = []; for (const num of arr) { // 临时块为空直接加入元素 if (currentChunk.length === 0) { currentChunk.push(num); continue; } // 校验数字连续性 if (num === currentChunk.at(-1) + 1) { currentChunk.push(num); // 满4个就存入结果,清空临时块 if (currentChunk.length === 4) { result.push([...currentChunk]); currentChunk = []; } } else { // 出现不连续数字,丢弃当前不足4位的临时块 currentChunk = []; currentChunk.push(num); } } return result; }
效果测试
输入示例:
const input = [36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,57,58,59,60,61,62]; console.log(chunkContinuous(input));
输出结果:
[[36,37,38,39],[40,41,42,43],[44,45,46,47],[48,49,50,51],[57,58,59,60]]
完全符合需求。
内容的提问来源于stack exchange,提问作者Devanshi Patel
相关产品推荐
相关产品推荐

