js对象长度

在JavaScript中,要获取对象的长度(即对象中属性的数量),可以使用以下几种方法:

  1. 使用Object.keys()方法
  • 该方法返回一个对象自身(即不包括继承属性)可枚举属性的数组。

  • 示例代码:

      const obj = { a: 1, b: 2, c: 3 };
      const length = Object.keys(obj).lengthconsole.log(length); // 输出:3
      ```

2. **使用`Object.getOwnPropertyNames()`方法** :

- 该方法返回一个对象自身(即不包括继承属性)所有属性的数组(包括不可枚举属性,但不包括Symbol属性)<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

- 示例代码<b class="card40_249__sup_a7f6" data-sup="sup">3</b>:

```javascript
      const obj = Object.create(null);
      obj.a = 1;
      obj.b = 2;
      obj.c = 3const length = Object.getOwnPropertyNames(obj).lengthconsole.log(length); // 输出:3
      ```

3. **使用`Object.getOwnPropertySymbols()`方法** :

- 该方法返回一个对象自身的所有符号属性的数组<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

- 示例代码<b class="card40_249__sup_a7f6" data-sup="sup">3</b>:

```javascript
      const obj = { a: 1, b: 2, c: 3, [Symbol("d")]: 4 };
      const length = Object.getOwnPropertySymbols(obj).lengthconsole.log(length); // 输出:1
      ```

4. **使用`for...in`循环** :

- 该方法遍历对象的所有可枚举属性<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

- 示例代码<b class="card40_249__sup_a7f6" data-sup="sup">3</b>:

```javascript
      const obj = { a: 1, b: 2, c: 3 };
      let length = 0for (const key in obj) {
        if (obj.hasOwnProperty(key)) {
          length++;
        }
      }
      console.log(length); // 输出:3
      ```

### 建议

- **推荐使用`Object.keys()`方法** ,因为它简洁且易于理解,适用于大多数情况。

- 如果需要包括不可枚举属性,可以使用`Object.getOwnPropertyNames()`方法。

- 如果需要包括符号属性,可以使用`Object.getOwnPropertySymbols()`方法<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

通过这些方法,可以准确地获取JavaScript对象的长度。
Top