# 数组分块

使用 lodash _.chunk 将数组按指定大小分割成块

> 标准页面: https://elysiatools.com/zh/tools/chunk-array

- **分类:** Data Processing

- **关键词:** 数组, 分块, 分割, 分组, 批处理, lodash

## 概述

将任意数组分割为指定大小的较小块（子数组）。

## 功能特性：
- 接受 JSON 数组（数字、字符串、对象或混合类型）
- 可自定义分块大小（1-100 个元素）
- 使用 lodash _.chunk 进行可靠的数组处理
- 保留数组元素类型

## 示例：
- 输入：[1, 2, 3, 4, 5]，大小：2 → [[1, 2], [3, 4], [5]]
- 输入：["a", "b", "c", "d", "e"]，大小：3 → [["a", "b", "c"], ["d", "e"]]
- 输入：[1, "a", 2, "b"]，大小：2 → [[1, "a"], [2, "b"]]

## 使用场景：
- **批处理**：分批处理数组用于 API 调用
- **分页**：将数据分割为页面大小的块
- **数据组织**：分组相关数组元素
- **内存管理**：以小块处理大型数组

## 输入项

- **数组输入** (textarea): 输入要分块的有效 JSON 数组
- **分块大小** (number): 每个块的元素数量（1-100）

## 适用场景

- 需要将大型数组分批处理，例如进行多次 API 调用时。
- 需要将数据分割成固定大小的块以实现前端分页显示时。
- 需要将数组中的相关元素进行逻辑分组时。

## 工作原理

- 在“数组输入”框中粘贴或输入一个有效的 JSON 数组。
- 在“分块大小”输入框中设置每个块应包含的元素数量（1-100）。
- 工具使用 lodash _.chunk 方法处理数组，保留所有元素及其原始类型。
- 处理完成后，页面将显示分割后的二维数组结果。

## 使用案例

- 将用户ID列表分块，用于批量查询用户信息的API调用。
- 将商品列表按每页10个进行分块，以实现分页加载功能。
- 将传感器读数数组按时间窗口大小进行分块，以便分组分析。

## 常见问题

### 输入的数组有什么格式要求？

必须是有效的 JSON 数组格式，例如 `[1, 2, 3]` 或 `["a", "b"]`。

### 分块大小有限制吗？

是的，分块大小必须在 1 到 100 之间。

### 数组中的元素类型有限制吗？

没有限制，可以是数字、字符串、对象或它们的混合。

### 如果数组为空会怎样？

工具将返回一个空数组 `[]`。

### 输出结果是什么格式？

输出是一个 JSON 格式的二维数组，每个子数组就是一个“块”。

## 相关工具

- [按深度扁平化数组](https://elysiatools.com/zh/tools/flatten-depth-array): 使用 lodash _.flattenDepth 按指定深度扁平化数组
- [从键值对构建对象](https://elysiatools.com/zh/tools/from-pairs): 使用 lodash _.fromPairs 将键值对数组转换为对象
- [排除指定值](https://elysiatools.com/zh/tools/without-values): 使用 lodash _.without 排除数组中的指定值
- [数组压缩工具](https://elysiatools.com/zh/tools/compact-array): 使用 lodash _.compact 从数组中移除假值
- [删除数组前N项](https://elysiatools.com/zh/tools/drop-items): 使用lodash _.drop删除数组的前N个元素
- [从右侧删除数组元素](https://elysiatools.com/zh/tools/drop-right-items): 使用 lodash 的 _.dropRight 从数组末尾删除 N 个元素
- [条件移除元素](https://elysiatools.com/zh/tools/drop-while): 使用 lodash 的 _.dropWhile 在满足条件时从数组开头移除元素
- [填充数组](https://elysiatools.com/zh/tools/fill-array): 使用 lodash _.fill 从起始索引到结束索引用值填充数组

## 示例

- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发
- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [D3.js 数据可视化示例](https://elysiatools.com/zh/samples/d3js-data-visualization): 全面的D3.js数据可视化示例，包括图表、地图、动画和交互式可视化
- [Rome JavaScript 工具链示例](https://elysiatools.com/zh/samples/rome): Rome JavaScript 工具链示例，包括配置、代码检查、格式化、打包和项目管理
