# 数组压缩工具

使用 lodash _.compact 从数组中移除假值

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

- **分类:** Data Processing

- **关键词:** 数组, 压缩, 清理, 过滤, 移除, 假值, lodash

## 概述

## 数组压缩工具

此工具使用 Lodash 的 `_.compact` 方法从数组中移除假值。

**被移除的假值:**
- `false`
- `null`
- `0`
- `""` (空字符串)
- `undefined`
- `NaN`

**示例:**
```json
输入:  [0, 1, false, 2, "", 3, null, 4, undefined, 5, NaN]
输出: [1, 2, 3, 4, 5]
```

**选项:**
- **保留零值**: 在数组中保留零值
- **保留空字符串**: 在数组中保留空字符串

## 输入项

- **JSON 数组** (textarea): 输入要压缩的 JSON 数组
- **保留零值** (checkbox): 在数组中保留零 (0) 值
- **保留空字符串** (checkbox): 在数组中保留空字符串 ("") 值

## 适用场景

- 当您需要清理从 API 或数据库获取的、可能包含空值或无效值的数组数据时。
- 在数据预处理阶段，需要过滤掉数组中的占位符或无效条目，以便进行后续计算或分析时。
- 在调试代码时，快速验证数组内容，排除假值干扰，聚焦于有效数据。

## 工作原理

- 在输入框中粘贴或输入一个 JSON 格式的数组。
- 根据需要勾选“保留零值”或“保留空字符串”选项，以自定义过滤规则。
- 工具将自动应用 `_.compact` 逻辑处理数组，并实时显示移除假值后的结果。
- 您可以直接复制输出结果，用于您的代码或数据分析流程中。

## 使用案例

- 数据清洗：在数据分析前，移除从 CSV 或日志文件解析出的数组中的空记录。
- 前端开发：处理用户输入或组件状态数组，确保渲染列表时不会包含无效项。
- 后端处理：在将数据发送给客户端之前，清理 API 响应数组，移除无意义的条目。

## 常见问题

### 哪些值会被视为“假值”并被移除？

默认情况下，`false`、`null`、`0`、`""`（空字符串）、`undefined` 和 `NaN` 都会被移除。

### 这个工具能处理嵌套数组吗？

不能。此工具仅处理一维数组，不会递归处理数组内部的嵌套数组或对象。

### 处理非常大的数组会影响性能吗？

对于常规大小的数组，处理是瞬时的。对于极大数组（如数万项），处理时间会相应增加，但通常仍在可接受范围内。

### 我可以自定义要移除的值吗？

不可以。此工具严格遵循 Lodash `_.compact` 的定义。您只能通过选项选择是否保留 `0` 和空字符串。

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

输出是一个格式化后的 JSON 数组字符串，您可以直接复制使用。

## 相关工具

- [BOM字符移除器](https://elysiatools.com/zh/tools/data-bom-remover): 从文本和文件内容中移除BOM（字节顺序标记）字符。非常适合清理有编码问题的文本文件、修复CSV导入和为处理准备数据。 功能特点： - 检测并移除UTF-8 BOM (EF BB BF) - 检测并移除UTF-16 BOM (FE FF 或 FF FE) - 检测并移除UTF-32 BOM (00 00 FE FF 或 FF FE 00 00) - 支持多种输入格式 - 可视化BOM字符显示 - 详细检测报告 - 支持批量文本处理 常见用途： - 修复CSV文件导入错误 - 清理文本文件编码问题 - 为JSON解析准备数据 - 修复XML解析问题 - 解决API数据编码冲突 - 标准化文本数据格式
- [数据范围限制器](https://elysiatools.com/zh/tools/data-range-limiter): 将数值限制在指定范围内，通过裁剪、过滤或标记越界值。完美用于数据质量控制、传感器数据清洗、业务规则执行和数据预处理。 功能特点： - 范围裁剪（将值裁剪到最小/最大边界） - 范围过滤（移除越界行） - 范围标记（标记修改的值） - 每列范围配置 - 自动数值列检测 - 多种处理策略 - 详细修改报告 - 变更统计分析 - 业务规则执行 常见用途： - 传感器数据验证和清洗 - 机器学习输入准备 - 数据质量控制和验证 - 业务约束执行 - 异常值管理和控制 - 数据预处理管道
- [JSON键提取器](https://elysiatools.com/zh/tools/json-key-extractor): 从JSON对象中提取所有键，支持多种输出格式。非常适合分析JSON结构、生成文档和理解复杂的嵌套对象。
- [移除指定值](https://elysiatools.com/zh/tools/pull-values): 使用 lodash _.pull 从数组中移除指定值
- [数组去重工具](https://elysiatools.com/zh/tools/array-deduplicator): 使用各种去重方法移除数组中的重复元素
- [数组过滤工具](https://elysiatools.com/zh/tools/array-filter): 从数组中过滤掉指定类型的元素（移除数字、字符串、布尔值、对象等）
- [数组元素删除器](https://elysiatools.com/zh/tools/array-element-deleter): 删除数组中的指定元素，支持多种删除方法
- [删除数组前N项](https://elysiatools.com/zh/tools/drop-items): 使用lodash _.drop删除数组的前N个元素

## 示例

- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [JWT 示例](https://elysiatools.com/zh/samples/jwt-samples): 从基础令牌结构到高级安全实现的全面JWT示例
- [PDF示例](https://elysiatools.com/zh/samples/pdf-samples): 2026-02-01 到 2026-02-10 工具生成的PDF示例
- [WebRTC 实时通信示例](https://elysiatools.com/zh/samples/webrtc-samples): 全面的 WebRTC 示例，用于点对点音视频通信、数据通道、屏幕共享和信令服务器实现

## 相关内容

- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [文本大小写、编码与规范化转换工具](https://elysiatools.com/zh/hubs/text-convert): 在一个专题中比较文本大小写转换、全半角转换、编码转换、Quoted-Printable 处理和行内文本规范化工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [Text 工具专题](https://elysiatools.com/zh/hubs/text-utility): 探索 33 个围绕 text 的 utility 工作流工具，快速找到相近能力。
