# 数组交集

使用 lodash _.intersection 查找多个数组的共同值

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

- **分类:** Data Processing

- **关键词:** 数组, 交集, 共同, 重叠, 过滤, lodash

## 概述

找出在所有提供数组中都出现的共享值。

**亮点：**
- 使用 lodash `_.intersection`
- 支持 2-3 个 JSON 数组
- 可选字符串不区分大小写匹配

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

## 输入项

- **数组 1** (textarea): 输入 JSON 数组
- **数组 2** (textarea): 输入 JSON 数组
- **数组 3** (textarea): 可选的第三个数组
- **区分大小写** (checkbox): 取消勾选以进行不区分大小写的匹配

## 适用场景

- 需要从多份数据列表中筛选出同时存在的项目时。
- 合并多个来源的配置或权限列表，找出所有来源都认可的部分时。
- 对比两组或三组数据，验证其一致性或找出重叠项时。

## 工作原理

- 工具接收2到3个JSON格式的数组作为输入。
- 内部调用lodash的_.intersection函数计算所有数组的交集。
- 可选的“区分大小写”设置控制字符串比较时是否忽略字母大小写。
- 最终输出一个包含所有输入数组共有元素的新数组。

## 使用案例

- 数据清洗：从多个用户提交的标签列表中，找出被共同使用的标签。
- 权限管理：合并来自不同角色组的权限列表，找出所有角色都具备的基础权限。
- 配置同步：对比开发、测试、生产环境的配置项，找出三者共有的核心配置。

## 常见问题

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

支持2到3个数组。

### “区分大小写”选项有什么作用？

取消勾选后，在比较字符串元素时会忽略大小写差异（例如，"Apple" 和 "apple" 会被视为相同）。

### 输入的数组格式有什么要求？

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

### 结果的顺序是怎样的？

结果数组中元素的顺序与第一个输入数组中元素的出现顺序一致。

### 如果输入数组中有空数组会怎样？

如果任何一个输入数组为空，那么交集结果将为空数组 `[]`。

## 相关工具

- [排序插入索引](https://elysiatools.com/zh/tools/sorted-index): 使用 lodash _.sortedIndex 查找排序数组插入索引
- [数组压缩工具](https://elysiatools.com/zh/tools/compact-array): 使用 lodash _.compact 从数组中移除假值
- [查找索引](https://elysiatools.com/zh/tools/index-of): 使用 lodash _.indexOf 查找值在数组中的索引
- [移除指定值](https://elysiatools.com/zh/tools/pull-values): 使用 lodash _.pull 从数组中移除指定值
- [按条件移除](https://elysiatools.com/zh/tools/remove-by-predicate): 使用 lodash _.remove 按条件移除数组元素
- [数组解压](https://elysiatools.com/zh/tools/unzip-arrays): 使用 lodash _.unzip 拆分分组数组
- [数组异或](https://elysiatools.com/zh/tools/xor-arrays): 使用 lodash _.xor 计算数组对称差
- [数组压缩](https://elysiatools.com/zh/tools/zip-arrays): 使用 lodash _.zip 按索引合并数组

## 示例

- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [ELK Stack 日志分析示例](https://elysiatools.com/zh/samples/elk-stack-samples): 全面的 ELK Stack（Elasticsearch、Logstash、Kibana）示例，用于分布式系统中的日志聚合、处理和可视化
- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发

## 相关内容

- [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 工作流工具，快速找到相近能力。
