# 排序去重

使用 lodash _.sortedUniq 为排序数组去重

> 标准页面: https://elysiatools.com/zh/tools/sorted-unique

- **分类:** Data Processing

- **关键词:** 数组, 去重, 排序, 重复, lodash

## 概述

删除排序 JSON 数组中的连续重复值。

**亮点：**
- 使用 lodash `_.sortedUniq`
- 适用于已排序数组
- 返回 JSON 格式的去重结果

**示例：**
- 数组：`[1, 1, 2, 2, 3]`
- 结果：`[1, 2, 3]`

## 输入项

- **数组** (textarea): 输入 JSON 数组

## 适用场景

- 当您拥有一个已排序的数组，并且需要快速移除其中连续的重复项时。
- 在数据预处理阶段，需要对已排序的列表进行去重以优化后续分析或存储。
- 当您希望利用 lodash 库的高效算法，而不是手动编写去重逻辑时。

## 工作原理

- 在输入框中粘贴或输入一个已排序的 JSON 数组。
- 工具会验证输入是否为有效的 JSON 数组格式。
- 调用 lodash 的 `_.sortedUniq` 函数处理该数组，仅移除相邻的重复元素。
- 处理完成后，页面将显示去重后的新 JSON 数组结果。

## 使用案例

- 清理从数据库查询返回的、已按某个字段排序的ID列表。
- 处理传感器或日志数据流，其中连续的重复读数可能表示状态未变化。
- 在生成图表或报告前，对已排序的分类标签或时间戳进行去重。

## 常见问题

### 这个工具适用于什么类型的数据？

它专门处理已排序的 JSON 数组，数组元素可以是数字、字符串等基本类型。

### 输入数组必须是严格排序的吗？

是的，为了确保 `_.sortedUniq` 能正确工作，输入数组应已按升序或降序排列。

### 处理大量数据需要很长时间吗？

不会，`_.sortedUniq` 算法效率很高，因为它只需遍历一次数组，比较相邻元素。

### 可以撤销去重操作吗？

本工具不提供撤销功能。建议在操作前备份原始数据。

### 它与普通的数组去重有什么区别？

普通去重（如 `_.uniq`）会检查所有元素，而 `sortedUniq` 仅检查相邻元素，因此要求输入数组已排序，但速度更快。

## 相关工具

- [数组压缩工具](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/pull-values): 使用 lodash _.pull 从数组中移除指定值
- [排序按字段去重](https://elysiatools.com/zh/tools/sorted-unique-by): 使用 lodash _.sortedUniqBy 为排序数组按字段去重
- [数组去重](https://elysiatools.com/zh/tools/uniq-array): 使用 lodash _.uniq 为数组去重
- [按字段去重](https://elysiatools.com/zh/tools/uniq-by): 使用 lodash _.uniqBy 按属性路径去重
- [排除指定值](https://elysiatools.com/zh/tools/without-values): 使用 lodash _.without 排除数组中的指定值

## 示例

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