# 继承键列表

使用 lodash _.keysIn 获取键列表

> 标准页面: https://elysiatools.com/zh/tools/keys-in-list

- **分类:** Data Processing

- **关键词:** 键, 对象, lodash, 列表, 属性

## 概述

列出对象的自有和继承可枚举键。

**亮点：**
- 使用 lodash `_.keysIn`
- 包含继承的可枚举属性
- 返回 JSON 键数组

**示例：**
- 对象：`{"a":1,"b":2}`
- 结果：`["a","b"]`

## 输入项

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

## 适用场景

- 需要检查对象及其原型链上所有可枚举属性时
- 在调试复杂 JavaScript 对象结构以确认属性来源时
- 需要将对象的所有键名提取为数组进行后续处理时

## 工作原理

- 在输入框中粘贴您的 JSON 对象数据。
- 工具会自动调用 lodash 的 _.keysIn 函数进行解析。
- 系统将提取并返回包含自有属性和继承属性的键名列表。
- 您可以直接复制生成的 JSON 数组以供代码使用。

## 使用案例

- 分析复杂原型链对象的属性构成
- 在编写自动化测试时验证对象是否包含预期的继承属性
- 快速生成对象属性列表以进行数据映射或转换

## 常见问题

### 该工具与普通的 Object.keys 有什么区别？

Object.keys 只返回对象自身的属性，而本工具使用 _.keysIn，会同时包含对象原型链上的继承属性。

### 如果输入的对象包含循环引用会怎样？

该工具主要用于处理标准的 JSON 数据结构，建议输入纯净的 JSON 对象以获得准确结果。

### 返回的键名列表包含不可枚举属性吗？

不包含。该工具仅列出可枚举的属性键名。

### 我可以输入嵌套的 JSON 对象吗？

可以，工具会解析顶层对象的所有可枚举键名。

### 该工具是否支持批量处理？

当前版本支持单次输入一个 JSON 对象进行解析。

## 相关工具

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

## 示例

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