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

如何用JavaScript实现按指定长度拆分数组的功能?

实现数组按指定大小分组的JavaScript函数

嘿,这个分组需求其实在日常开发里挺常见的,我给你分享两种靠谱的实现方式,都能完美满足你的要求~

方法一:使用while循环 + splice(直观易懂)

这种方式逻辑很直白,就是不断从数组里截取指定长度的片段,直到数组被取空:

function chunkArray(array, size) {
  // 先做参数校验,避免传入无效的分组大小
  if (size < 1) {
    throw new Error('分组大小必须是正整数哦');
  }
  
  const result = [];
  // 复制原数组,防止修改到原始数据(如果不需要保护原数组,可以直接用原数组)
  const tempArr = [...array];
  
  while (tempArr.length > 0) {
    // 每次从数组开头截取size个元素,加到结果数组里
    result.push(tempArr.splice(0, size));
  }
  
  return result;
}

方法二:使用reduce方法(函数式风格)

如果你更喜欢函数式编程的写法,用reduce实现会更简洁,而且不会修改原数组:

function chunkArray(array, size) {
  if (size < 1) {
    throw new Error('分组大小必须是正整数哦');
  }
  
  return array.reduce((result, currentItem, index) => {
    // 计算当前元素应该归属的分组索引
    const chunkIndex = Math.floor(index / size);
    
    // 如果该分组还不存在,就初始化一个空数组
    if (!result[chunkIndex]) {
      result[chunkIndex] = [];
    }
    
    // 把当前元素加入对应的分组
    result[chunkIndex].push(currentItem);
    
    return result;
  }, []); // 初始化结果数组为空数组
}

测试验证

用你给出的例子测试一下,完全符合预期:

const testArray = ['a','b','c','d','e','f','g','h','i'];

console.log(chunkArray(testArray, 2));
// 输出:[['a','b'], ['c','d'], ['e','f'], ['g','h'], ['i']]

console.log(chunkArray(testArray, 3));
// 输出:[['a','b','c'], ['d','e','f'], ['g','h','i']]

两种方法都能解决问题,你可以根据自己的代码风格和需求来选~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:37:09