# 遍历自有属性

使用 lodash _.forOwn 遍历对象自有属性

> 标准页面: https://elysiatools.com/zh/tools/for-own

- **分类:** Data Processing

- **关键词:** forOwn, 对象, lodash, 遍历, 条目

## 概述

遍历对象自身的可枚举属性。

**亮点：**
- 使用 lodash `_.forOwn`
- 仅遍历自有可枚举属性
- 返回按顺序排列的键值列表

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

## 输入项

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

## 适用场景

- 需要从复杂的 JSON 对象中提取所有自有属性进行数据分析时。
- 在调试代码时，需要清晰查看对象内部结构及其键值对映射时。
- 需要将对象转换为数组格式以便进行后续的迭代或渲染操作时。

## 工作原理

- 在输入框中粘贴或输入标准的 JSON 对象。
- 工具会自动调用 lodash 的 _.forOwn 方法进行遍历。
- 系统将过滤掉原型链上的属性，仅保留对象自身的可枚举属性。
- 最终输出一个包含键值对的结构化列表，方便直接查看或复制使用。

## 使用案例

- 快速将 API 返回的配置对象转换为列表进行 UI 渲染。
- 在处理后端数据时，快速检查对象中是否包含预期的所有字段。
- 将对象数据格式化为数组，以便进行排序或过滤等后续处理。

## 常见问题

### 该工具会遍历原型链上的属性吗？

不会。该工具仅遍历对象自身的可枚举属性，符合 lodash _.forOwn 的行为规范。

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

请输入标准的 JSON 格式对象，例如 {"key": "value"}。

### 如果对象为空，工具会返回什么？

如果输入的对象为空，工具将返回一个空数组。

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

该工具会遍历对象的第一层自有属性，如果属性值本身是对象，它将作为值直接显示。

### 为什么使用 lodash 的 forOwn 而不是原生循环？

lodash 的 forOwn 提供了更稳定且跨环境一致的遍历行为，能够有效处理各种边缘情况。

## 相关工具

- [对象继承赋值](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/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/get-path): 使用 lodash _.get 按路径取值

## 示例

- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发
- [分布式追踪示例](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）示例，用于分布式系统中的日志聚合、处理和可视化
