遍历 JavaScript 对象有多种方法,以下是常用的几种方式及其特点:
1. for...in 循环- 特点:遍历对象的所有可枚举属性(包括继承自原型链的属性)。
- 示例:const person = { name: "John Doe", age: 30, city: "New York" };for (const property in person) { console.log(`${property}: ${person[property]}`);}
- 输出:name: John Doeage: 30city: New York
- 注意:若需排除继承属性,需配合 Object.hasOwnProperty() 检查。
2. Object.keys()- 特点:返回对象自身可枚举属性的键组成的数组,仅遍历自有属性。
- 示例:const keys = Object.keys(person);for (const key of keys) { console.log(`${key}: ${person[key]}`);}
- 输出:同上。
3. Object.values()- 特点:返回对象自身可枚举属性的值组成的数组。
- 示例:const values = Object.values(person);for (const value of values) { console.log(value);}
- 输出:John Doe30New York
4. Object.entries()- 特点:返回对象自身可枚举属性的键值对数组,适合同时获取键和值。
- 示例:const entries = Object.entries(person);for (const [key, value] of entries) { console.log(`${key}: ${value}`);}
- 输出:同上。
5. 其他方法(较少使用)- Object.getOwnPropertyNames():遍历所有自有属性(包括不可枚举属性)。
- Reflect.ownKeys():包括符号属性在内的所有自有键。
- 数组方法(如 forEach):需先通过 Object.keys() 或 Object.entries() 转换。
总结根据需求选择合适的方法,确保代码简洁高效。