1. 程式人生 > 實用技巧 >ES6中獲取物件的key

ES6中獲取物件的key

ES6中獲取物件的key

const json = {'a': 123, 'b': 321};
 
Object.keys(json).forEach(key => {
    window.console.log(key);
}); // [a,b]

ES6一共有五種方法可以遍歷物件的屬性。

for ... in:迴圈遍歷物件自身的和繼承的可列舉的屬性(不包含Symbol屬性)
Object.keys(obj): 返回一個數組,包括物件自身的所有可列舉的屬性(不包含繼承,不包含Symbol屬性)

Object.getOwnPropertyNames(obj):返回一個數組,包含物件自身的所有屬性(含繼承、不可列舉屬性,不含Symbol屬性)


Object.getOwnPropertySymbols(obj):返回一個數組,包含物件自身的所有Symbol屬性

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

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

首先遍歷所有屬性名為數值的屬性,按照數字排序
其次遍歷所有屬性名為字串的屬性,按照生成時間排序
最後遍歷所有屬性名為Symbol值的屬性,按照生成時間排序