# 深度扁平化数组

使用 lodash _.flattenDeep 完全扁平化数组

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

- **分类:** Data Processing

- **关键词:** 数组, 扁平化, 深度, 递归, lodash, 嵌套

## 概述

递归扁平化数组以完全消除所有嵌套。

## 功能特性：
- 接受任意深度的深层嵌套 JSON 数组
- 递归扁平化所有嵌套层级
- 生成单层数组
- 处理混合数据类型的数组
- 使用 lodash _.flattenDeep 进行完全扁平化

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

## 使用场景：
- **深度数据提取**：从深层嵌套结构中提取所有元素
- **数据标准化**：将复杂的嵌套数组转换为简单列表
- **搜索操作**：扁平化数据以便更轻松的搜索和过滤
- **数组操作**：为需要平铺数组的算法准备数据

## 输入项

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

## 适用场景

- 当需要从深层嵌套的 JSON 数据结构中提取所有元素时。
- 当数据处理流程要求将多维数组标准化为一维列表时。
- 当为了简化后续的搜索、过滤或算法计算而需要平铺数据时。

## 工作原理

- 在输入框中粘贴包含深层嵌套的有效 JSON 数组。
- 工具会自动识别嵌套层级并调用递归算法。
- 系统将处理后的结果输出为单层扁平化数组。

## 使用案例

- 深度数据提取：从复杂的 API 响应或嵌套 JSON 结构中快速获取所有数据点。
- 数据标准化：将多层级嵌套的配置项或列表转换为统一的扁平格式，便于后续处理。
- 算法准备：为需要线性输入数据的排序、搜索或过滤算法预处理数组。

## 常见问题

### 该工具支持多深度的嵌套吗？

支持，该工具使用递归逻辑，可以处理任意深度的嵌套数组。

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

输入必须是有效的 JSON 数组格式，例如 [1, [2, [3]]]。

### 它能处理混合数据类型吗？

可以，工具能够处理包含数字、字符串等混合类型的数组并将其扁平化。

### 扁平化后的数组顺序会改变吗？

不会，工具会按照原始数组中元素的出现顺序进行平铺。

### 该工具使用了什么核心技术？

该工具基于 lodash 库的 _.flattenDeep 函数实现，确保了处理的准确性和高效性。

## 相关工具

- [深度默认值](https://elysiatools.com/zh/tools/defaults-deep): 使用 lodash _.defaultsDeep 应用深度默认值
- [深度去重](https://elysiatools.com/zh/tools/uniq-with): 使用 lodash _.uniqWith 进行深度去重
- [路径取值](https://elysiatools.com/zh/tools/get-path): 使用 lodash _.get 按路径取值
- [按键分组](https://elysiatools.com/zh/tools/group-by): 使用 lodash _.groupBy 按派生键分组
- [获取首个元素](https://elysiatools.com/zh/tools/head-item): 使用 lodash _.head 获取数组的第一个元素
- [查找索引](https://elysiatools.com/zh/tools/index-of): 使用 lodash _.indexOf 查找值在数组中的索引
- [获取除最后一个元素](https://elysiatools.com/zh/tools/initial-items): 使用 lodash _.initial 获取除最后一个元素外的所有元素
- [数组交集](https://elysiatools.com/zh/tools/intersection-arrays): 使用 lodash _.intersection 查找多个数组的共同值

## 示例

- [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 工具链示例，包括配置、代码检查、格式化、打包和项目管理
