# 对象反转

使用 lodash _.invert 反转键和值

> 标准页面: https://elysiatools.com/zh/tools/invert-object

- **分类:** Data Processing

- **关键词:** 反转, 对象, lodash, 键, 值

## 概述

交换对象中的键和值。

**亮点：**
- 使用 lodash `_.invert`
- 值会变成字符串键
- 后面的值会覆盖前面的键

**示例：**
- 对象：`{"a":"x","b":"y"}`
- 结果：`{"x":"a","y":"b"}`

## 输入项

- **对象** (textarea): 输入 JSON 对象

## 适用场景

- 需要根据值快速查找对应的键时
- 在处理映射表数据，需要将映射关系反转时
- 在进行数据清洗，需要将对象结构标准化时

## 工作原理

- 在输入框中粘贴您的 JSON 对象。
- 工具会自动调用 lodash _.invert 方法。
- 系统将原对象的值转换为键，原键转换为值并输出结果。

## 使用案例

- 反转状态码映射表，通过状态值获取对应的状态名称。
- 将配置项的键值对互换，以便于进行反向查找。
- 快速整理 API 返回的简单键值对数据，以适应前端组件的渲染需求。

## 常见问题

### 如果原对象中有重复的值会怎样？

由于对象键的唯一性，后面的值会覆盖前面的键，最终结果中只会保留最后出现的键。

### 反转后的键是什么类型？

反转后的键会被强制转换为字符串类型。

### 该工具支持嵌套对象吗？

该工具主要处理扁平对象。对于嵌套对象，它会将嵌套结构的值视为字符串处理。

### 工具使用了什么技术？

该工具基于 lodash 库的 _.invert 方法构建，确保了处理逻辑的准确性和稳定性。

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

请输入标准的 JSON 格式对象，例如 {"a": "x", "b": "y"}。

## 相关工具

- [对象继承赋值](https://elysiatools.com/zh/tools/assign-in-object): 使用 lodash _.assignIn 分配自有和继承属性
- [深度默认值](https://elysiatools.com/zh/tools/defaults-deep): 使用 lodash _.defaultsDeep 应用深度默认值
- [按值反转](https://elysiatools.com/zh/tools/invert-by): 使用 lodash _.invertBy 按值分组反转
- [继承键列表](https://elysiatools.com/zh/tools/keys-in-list): 使用 lodash _.keysIn 获取键列表
- [键列表](https://elysiatools.com/zh/tools/keys-list): 使用 lodash _.keys 获取键列表
- [按键计数](https://elysiatools.com/zh/tools/count-by): 使用 lodash _.countBy 按派生键计数
- [查找键](https://elysiatools.com/zh/tools/find-key): 使用 lodash _.findKey 查找第一个匹配的键
- [遍历对象](https://elysiatools.com/zh/tools/for-in-object): 使用 lodash _.forIn 遍历对象属性

## 示例

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