javascript中无原生chunk方法,可用array.from()+math.ceil()一行实现,或reduce()累积分组;推荐封装为纯函数工具,注意size校验、边界处理及避免修改原数组。

JavaScript 中没有原生的 chunk 方法,但可以用 Array.prototype.reduce()、Array.prototype.slice() 配合循环或 Array.from() 等方式灵活实现按指定大小分割数组。
用 Array.from() + Math.ceil() 一行搞定
这是最简洁常用的方式:先算出要分成几块,再用 Array.from() 构造新数组,每项调用 slice 取对应段。
- 核心逻辑:
Math.ceil(arr.length / size)得到 chunk 数量 Array.from({ length: n }, (_, i) => arr.slice(i * size, (i + 1) * size))- 示例:
[1,2,3,4,5].chunk(2)→[[1,2], [3,4], [5]]
用 reduce() 累积分组(适合流式处理)
一边遍历一边归集,语义清晰,也便于扩展(比如加过滤、映射等逻辑)。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 初始化空数组作为 accumulator
- 对每个元素,计算它该进第几个 chunk:
Math.floor(index / size) - 用
push或展开语法把元素塞进对应子数组 - 注意:需确保目标 chunk 存在,否则要先初始化
封装成可复用的工具函数
推荐挂到 Array.prototype 上(项目可控时),或定义独立函数避免污染全局。
- 加参数校验:
size必须是正整数,否则返回原数组或抛错 - 支持空数组、
size大于原数组长度等边界情况 - 返回新数组,不修改原数组(保持纯函数特性)
注意点和常见坑
分割看似简单,但实际使用中容易忽略细节:
-
size ≤ 0时行为要明确(一般返回空数组或原样返回) - 用
splice()虽然能边切边删,但会改变原数组,不推荐 - 大数组下,频繁
slice()有内存开销,如需极致性能可考虑生成器函数(function*)逐块产出 - TypeScript 用户记得补全类型定义,尤其泛型
T的传递
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










