遍历对象的方式

40 阅读1分钟
遍历对象的方式有很多种,以下是其中几种常见的方式:

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);
});
```