# 数组扁平化

使用 lodash _.flatten 将数组扁平化一层

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

- **分类:** Data Processing

- **关键词:** 数组, 扁平化, 嵌套, lodash, 转换

## 概述

将嵌套数组扁平化一层（仅减少一层嵌套）。

## 功能特性：
- 接受任意深度的嵌套 JSON 数组
- 仅扁平化一层嵌套
- 保留更深层嵌套结构
- 处理混合数据类型的数组
- 使用 lodash _.flatten 进行可靠的数组处理

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

## 使用场景：
- **数据预处理**：减少结构化数据的一层嵌套
- **数组标准化**：简化嵌套数组结构
- **批处理**：准备嵌套数据用于处理
- **数据转换**：将嵌套数组转换为更简单的结构

## 输入项

- **数组输入** (textarea): 输入包含嵌套元素的有效 JSON 数组

## 适用场景

- 当你需要简化多层嵌套数组结构以便于后续遍历时。
- 当数据源包含冗余的嵌套层级，需要进行标准化预处理时。
- 在进行数据转换或批处理前，需要将数组结构调整为更扁平的格式时。

## 工作原理

- 在输入框中粘贴包含嵌套元素的有效 JSON 数组。
- 工具会自动调用 lodash _.flatten 方法对数组进行处理。
- 系统将仅减少一层嵌套，并保留更深层的嵌套结构，输出处理后的数组。

## 使用案例

- 数据预处理：减少结构化数据的一层嵌套，方便后续逻辑处理。
- 数组标准化：将不规则的嵌套数组转换为统一的扁平结构。
- 数据转换：为 API 接口或前端组件准备符合格式要求的数组数据。

## 常见问题

### 该工具可以扁平化多层嵌套吗？

该工具仅支持扁平化一层嵌套。如果数组嵌套深度超过两层，深层嵌套结构将被保留。

### 支持哪些数据类型？

支持包含数字、字符串、对象等混合数据类型的 JSON 数组。

### 输入格式有什么要求？

输入必须是符合 JSON 标准的数组格式，例如 [1, [2, [3]], 4]。

### 处理速度快吗？

工具基于 lodash 高性能库，能够瞬间完成数组扁平化处理。

### 是否会修改原始数据？

该工具仅在浏览器端处理数据，不会保存或修改您的原始数据。

## 相关工具

- [按深度扁平化数组](https://elysiatools.com/zh/tools/flatten-depth-array): 使用 lodash _.flattenDepth 按指定深度扁平化数组
- [从键值对构建对象](https://elysiatools.com/zh/tools/from-pairs): 使用 lodash _.fromPairs 将键值对数组转换为对象
- [数组分块](https://elysiatools.com/zh/tools/chunk-array): 使用 lodash _.chunk 将数组按指定大小分割成块
- [数组压缩工具](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 工具链示例，包括配置、代码检查、格式化、打包和项目管理
