# 数组压缩

使用 lodash _.zip 按索引合并数组

> 标准页面: https://elysiatools.com/zh/tools/zip-arrays

- **分类:** Data Processing

- **关键词:** 数组, 压缩, 索引, 组合, lodash

## 概述

按索引将多个数组组合成数组。

**亮点：**
- 使用 lodash `_.zip`
- 支持 2-4 个 JSON 数组
- 缺失值会填充为 null

**示例：**
- 数组 1：`["a", "b"]`
- 数组 2：`[1, 2]`
- 结果：`[["a", 1], ["b", 2]]`

## 输入项

- **数组 1** (textarea): 输入 JSON 数组
- **数组 2** (textarea): 输入 JSON 数组
- **数组 3** (textarea): 可选的第三个数组
- **数组 4** (textarea): 可选的第四个数组

## 适用场景

- 当你需要将多个独立的列表按顺序配对，例如将姓名列表与对应的分数列表合并时。
- 当你需要对齐来自不同来源但具有相同索引结构的数据时。
- 当你需要为数据可视化或进一步处理准备结构化的配对数据，并希望自动处理缺失项时。

## 工作原理

- 在对应的输入框中，分别输入 2 到 4 个有效的 JSON 数组。
- 工具调用 lodash 的 _.zip 函数，按索引位置提取每个数组的元素。
- 将同一索引位置上的所有元素组合成一个新的子数组。
- 如果某个数组在特定索引位置没有元素，则在该位置的子数组中填充 null，最后输出完整的嵌套数组。

## 使用案例

- 将学生姓名数组与他们的考试成绩数组配对，生成 `\[姓名, 分数\]` 的列表。
- 合并产品 ID 列表和对应的价格列表，用于生成结构化的产品数据。
- 将时间戳数组与传感器读数数组组合，为绘制时间序列图表准备数据。

## 常见问题

### 这个工具最多支持合并几个数组？

支持合并 2 到 4 个数组。

### 如果输入的数组长度不一样会怎样？

较短数组缺失的位置会自动用 null 填充。

### 输入必须是 JSON 数组格式吗？

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

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

输出是一个嵌套数组，其中每个子数组包含来自输入数组的对应索引元素。

### 可以输入非 JSON 格式的数组吗？

不可以，输入必须严格遵循 JSON 数组语法。

## 相关工具

- [按键计数](https://elysiatools.com/zh/tools/count-by): 使用 lodash _.countBy 按派生键计数
- [按键分组](https://elysiatools.com/zh/tools/group-by): 使用 lodash _.groupBy 按派生键分组
- [查找索引](https://elysiatools.com/zh/tools/index-of): 使用 lodash _.indexOf 查找值在数组中的索引
- [数组交集](https://elysiatools.com/zh/tools/intersection-arrays): 使用 lodash _.intersection 查找多个数组的共同值
- [按值反转](https://elysiatools.com/zh/tools/invert-by): 使用 lodash _.invertBy 按值分组反转
- [第 N 项](https://elysiatools.com/zh/tools/nth-item): 使用 lodash _.nth 获取指定索引的元素
- [按条件移除](https://elysiatools.com/zh/tools/remove-by-predicate): 使用 lodash _.remove 按条件移除数组元素
- [排序插入索引](https://elysiatools.com/zh/tools/sorted-index): 使用 lodash _.sortedIndex 查找排序数组插入索引

## 示例

- [ZIP Viewer Samples](https://elysiatools.com/zh/samples/zip-viewer-samples): A small ZIP archive with text and JSON files for in-browser preview
- [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数据可视化示例，包括图表、地图、动画和交互式可视化

## 相关内容

- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [JSON Schema、Mock 数据与 API 夹具生成工具](https://elysiatools.com/zh/hubs/json-generate): 围绕JSON Schema 生成、Mock 负载构建与 API 夹具准备整理的一组工具。
- [JSON 格式化、对比与规范化工具](https://elysiatools.com/zh/hubs/json-format): 在一个专题中比较 JSON 格式化、差异对比、日志审查、配置比较和数据规范化工具，适合需要让 JSON 更易读、更易审查的流程。
