遍历对象的方式有很多种,以下是其中几种常见的方式:
1. for...in 循环
for...in 循环可以遍历对象的所有可枚举属性(包括继承的属性),语法如下:
```
for (let key in obj) {
console.log(key, obj[key]);
}
```
其中,key 为属性名,obj[key] 为属性值。
2. Object.keys() 方法
Object.keys() 方法返回一个由对象的所有可枚举属性组成的数组,可以使用 forEach() 或 for...of 循环遍历,语法如下:
```
Object.keys(obj).forEach(key => {
console.log(key, obj[key]);
});
```
3. Object.getOwnPropertyNames() 方法
Object.getOwnPropertyNames() 方法返回一个由对象的所有属性(包括不可枚举属性)组成的数组,可以使用 forEach() 或 for...of 循环遍历,语法如下:
```
Object.getOwnPropertyNames(obj).forEach(key => {
console.log(key, obj[key]);
});
```
4. Reflect.ownKeys() 方法
Reflect.ownKeys() 方法返回一个由对象的所有属性(包括不可枚举属性和 Symbol 属性)组成的数组,可以使用 forEach() 或 for...of 循环遍历,语法如下:
```
Reflect.ownKeys(obj).forEach(key => {
console.log(key, obj[key]);
});
```
需要注意的是,以上遍历方式都是遍历对象的属性,而不是属性值。如果需要遍历属性值,可以将遍历对象的属性名与属性值配对,例如:
```
Object.entries(obj).forEach(([key, value]) => {
console.log(key, value);
});
```