# 按键分组

使用 lodash _.groupBy 按派生键分组

> 标准页面: https://elysiatools.com/zh/tools/group-by

- **分类:** Data Processing

- **关键词:** 分组, lodash, 集合, 对象, 数组

## 概述

按派生键对集合进行分组。

**亮点：**
- 使用 lodash `_.groupBy`
- 支持 JSON 数组或对象
- 支持 identity 或属性/路径迭代器

**示例：**
- 集合：`[{"type":"a"},{"type":"b"},{"type":"a"}]`
- 迭代器：`type`
- 结果：`{"a":[{"type":"a"},{"type":"a"}],"b":[{"type":"b"}]}`

## 输入项

- **集合** (textarea): 输入 JSON 数组或对象
- **迭代器类型** (select)
- **迭代器** (text): 使用属性迭代器时的属性名或路径

## 适用场景

- 当需要根据特定属性对 JSON 数组进行分类时。
- 当处理对象集合并希望按键值分组以简化数据分析时。
- 当使用 lodash 的 groupBy 功能但希望无需编写代码即可操作时。

## 工作原理

- 输入您的 JSON 数组或对象作为集合。
- 选择迭代器类型：原样（identity）或属性/路径（property）。
- 如果选择属性迭代器，输入属性名或路径，如 'type' 或 'user.name'。
- 工具自动应用 lodash 的 _.groupBy 并输出分组后的 JSON 对象。

## 使用案例

- 数据分析：按产品类别分组销售记录以生成报告。
- 数据清洗：将日志条目按错误代码分组以便排查问题。
- 报告准备：按项目状态分组任务列表以跟踪进度。

## 常见问题

### 这个工具支持哪些输入格式？

支持 JSON 数组和 JSON 对象作为输入集合。

### 迭代器类型有哪些选项？

支持原样（identity）和属性/路径（property）两种迭代器类型。

### 如何指定嵌套属性进行分组？

在迭代器字段中输入点分隔的路径，例如 'address.city'。

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

输出为 JSON 对象，键是分组键，值是对应元素的数组。

### 这个工具需要安装或注册吗？

不需要，这是一个免费的在线工具，直接在浏览器中使用。

## 相关工具

- [按键计数](https://elysiatools.com/zh/tools/count-by): 使用 lodash _.countBy 按派生键计数
- [查找键](https://elysiatools.com/zh/tools/find-key): 使用 lodash _.findKey 查找第一个匹配的键
- [路径取值](https://elysiatools.com/zh/tools/get-path): 使用 lodash _.get 按路径取值
- [查找索引](https://elysiatools.com/zh/tools/index-of): 使用 lodash _.indexOf 查找值在数组中的索引
- [获取除最后一个元素](https://elysiatools.com/zh/tools/initial-items): 使用 lodash _.initial 获取除最后一个元素外的所有元素
- [按值反转](https://elysiatools.com/zh/tools/invert-by): 使用 lodash _.invertBy 按值分组反转
- [第 N 项](https://elysiatools.com/zh/tools/nth-item): 使用 lodash _.nth 获取指定索引的元素
- [按条件移除](https://elysiatools.com/zh/tools/remove-by-predicate): 使用 lodash _.remove 按条件移除数组元素

## 示例

- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发
- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [Postman Collections - API 测试](https://elysiatools.com/zh/samples/postman-collections): 全面的 Postman collection 示例，包括 API 测试、自动化脚本、环境变量、mock 服务器和 REST API 的高级测试模式
- [D3.js 数据可视化示例](https://elysiatools.com/zh/samples/d3js-data-visualization): 全面的D3.js数据可视化示例，包括图表、地图、动画和交互式可视化

## 相关内容

- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [JSON Schema、Mock 数据与 API 夹具生成工具](https://elysiatools.com/zh/hubs/json-generate): 围绕JSON Schema 生成、Mock 负载构建与 API 夹具准备整理的一组工具。
- [JSON 格式化、对比与规范化工具](https://elysiatools.com/zh/hubs/json-format): 在一个专题中比较 JSON 格式化、差异对比、日志审查、配置比较和数据规范化工具，适合需要让 JSON 更易读、更易审查的流程。
