1. 程式人生 > >Js遍歷物件的屬性

Js遍歷物件的屬性

本文寫於 2018/6/4 ES6

ES6一共有5中方法可以遍歷物件的屬性

  1. for...in

    for...in迴圈遍歷物件自身和繼承的可列舉屬性(不含Symbol屬性)。

  2. Object.keys(obj)

    Object.keys()返回一個數組,包括物件自身的(不含繼承的)可列舉屬性(不含Symbol屬性)的鍵名。

  3. Object.getOwnPropertyNames(obj)

    Object.getOwnPropertyNames返回一個數組,包含物件自身的所有屬性(不含Symbol屬性,但是包含不可列舉的屬性)的鍵名。

  4. Object.getOwnPropertySymbols(obj)

    Object.getOwnPropertySymbols返回一個數組,包含物件自身的所有的Symbol屬性的鍵名。

  5. Reflect.ownKeys(obj)

    Reflect.ownKeys返回一個數組,包含物件自身的所有的鍵名,不管鍵名是Symbol或字串,也不管是否可列舉。

以上的5中方法遍歷物件的鍵名,都遵守同樣的屬性遍歷的次序規則。

  • 首先遍歷所有的數值鍵,按照數值的升序排列。
  • 其次遍歷所有的字串鍵,按照加入時間升序排列。
  • 最後遍歷所有Symbol鍵,按照加入時間升序排列。

參考於 阮一峰部落格