JavaScript 遍历对象有多种方式,以下是常用的几种方法:
for……in循环
使用 for...in 循环可以遍历对象的可枚举属性,包括自身的属性和继承的属性。
const obj = { name: 'Alice', age: 25, gender: 'female' }; for (let key in obj) { console.log(key + ': ' + obj[key]); }
注意:for...in 循环遍历的顺序不保证按照属性的添加顺序。
Object.keys() 方法配合 forEach 或 for...of 循环
使用 Object.keys() 方法可以获取对象的所有可枚举属性,并返回一个由属性名组成的数组。然后可以使用 forEach 或 for...of 循环遍历该数组,来访问每个属性的值。
const obj = { name: 'Alice', age: 25, gender: 'female' }; Object.keys(obj).forEach(function(key) { console.log(key + ': ' + obj[key]); }); // 或者使用 for...of 循环 for (let key of Object.keys(obj)) { console.log(key + ': ' + obj[key]); }
Object.entries()方法配合 forEach 或 for...of 循环
使用 Object.entries() 方法可以将对象转换为一个由键值对组成的数组。然后可以使用 forEach 或 for...of 循环遍历该数组,来访问每个键值对。
const obj = { name: 'Alice', age: 25, gender: 'female' }; Object.entries(obj).forEach(function([key, value]) { console.log(key + ': ' + value); }); // 或者使用 for...of 循环 for (let [key, value] of Object.entries(obj)) { console.log(key + ': ' + value); }
注意:Object.entries() 方法是在 ES2017 中引入的,所以在一些旧版本的浏览器中可能不支持。
Object.getOwnPropertyNames() 方法配合 forEach 或 for...of 循环
使用 Object.getOwnPropertyNames() 方法可以获取对象的所有属性(包括不可枚举属性),并返回一个由属性名组成的数组。然后可以使用 forEach 或 for...of 循环遍历该数组,来访问每个属性的值。
const obj = { name: 'Alice', age: 25, gender: 'female' }; Object.getOwnPropertyNames(obj).forEach(function(key) { console.log(key + ': ' + obj[key]); }); // 或者使用 for...of 循环 for (let key of Object.getOwnPropertyNames(obj)) { console.log(key + ': ' + obj[key]); }
以上就是 JavaScript 遍历对象的常用方式,根据不同的需求选择不同的方法可以更加方便和灵活地操作对象。