Js遍歷物件的屬性
阿新 • • 發佈:2019-01-03
本文寫於 2018/6/4 ES6
ES6一共有5中方法可以遍歷物件的屬性
for...in
for...in
迴圈遍歷物件自身和繼承的可列舉屬性(不含Symbol屬性)。Object.keys(obj)
Object.keys()
返回一個數組,包括物件自身的(不含繼承的)可列舉屬性(不含Symbol屬性)的鍵名。Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames
返回一個數組,包含物件自身的所有屬性(不含Symbol屬性,但是包含不可列舉的屬性)的鍵名。Object.getOwnPropertySymbols(obj)
Object.getOwnPropertySymbols
返回一個數組,包含物件自身的所有的Symbol屬性的鍵名。Reflect.ownKeys(obj)
Reflect.ownKeys
返回一個數組,包含物件自身的所有的鍵名,不管鍵名是Symbol或字串,也不管是否可列舉。
以上的5中方法遍歷物件的鍵名,都遵守同樣的屬性遍歷的次序規則。
- 首先遍歷所有的數值鍵,按照數值的升序排列。
- 其次遍歷所有的字串鍵,按照加入時間升序排列。
- 最後遍歷所有Symbol鍵,按照加入時間升序排列。
參考於 阮一峰部落格