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

JavaScript如何将数组拆分为指定数量的大小不均等的子数组

实现逻辑
  • 先获取原数组总长度,计算每个子数组的基础长度,以及无法均分的剩余元素个数
  • 前剩余元素个数个子数组,每个分配基础长度 + 1个元素,把多出来的元素优先放在前面的子数组,保证整体长度尽可能均匀
  • 剩下的子数组每个分配基础长度个元素即可
完整JavaScript代码
function splitArray(arr, splitCount) {
  const len = arr.length;
  // 边界情况处理
  if (splitCount <= 0) return [];
  if (splitCount >= len) return arr.map(item => [item]);
  
  const baseSize = Math.floor(len / splitCount);
  const remain = len % splitCount;
  const result = [];
  let currentIndex = 0;

  for (let i = 0; i < splitCount; i++) {
    const currentSize = i < remain ? baseSize + 1 : baseSize;
    result.push(arr.slice(currentIndex, currentIndex + currentSize));
    currentIndex += currentSize;
  }
  return result;
}
测试验证

用你给出的示例做测试,输出完全匹配要求:

const testArr = [1,2,3,4,5,6,7,8,9];
// 拆分数量为6
console.log(splitArray(testArr, 6)); // [[1,2],[3,4],[5,6],[7],[8],[9]]

// 拆分数量为3
console.log(splitArray(testArr, 3)); // [[1,2,3],[4,5,6],[7,8,9]]

// 拆分数量为4
console.log(splitArray(testArr, 4)); // [[1,2,3],[4,5],[6,7],[8,9]]

内容的提问来源于stack exchange,提问作者It's Not That Common

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:24:04