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值的屬性,按照生成時間排序