ES6 屬性的遍歷

2021-10-04 07:25:46 字數 1000 閱讀 4005

es6 一共有6種方法可以遍歷物件的屬性

( 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或字串, 也不管是否可列舉。

( 6) reflect.enumerate(obj)

reflect.enumerate 返回乙個iterator物件, 遍歷物件自身的和繼承的所有可列舉屬性(不含symbol屬性) , 與 for...in 循

環相同。

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

首先遍歷所有屬性名為數值的屬性, 按照數字排序。

其次遍歷所有屬性名為字串的屬性, 按照生成時間排序。

最後遍歷所有屬性名為symbol值的屬性, 按照生成時間排序。

reflect.ownkeys()

// ['2', '10', 'b', 'a', symbol()]

上面**中, reflect.ownkeys 方法返回乙個陣列, 包含了引數物件的所有屬性。 這個陣列的屬性次序是這樣的, 首先是數

值屬性 2 和 10 , 其次是字串屬性 b 和 a , 最後是symbol屬性。

ES6 屬性的遍歷

1.for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2.obejct.keys obj 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3.object.getownpropertynames obj 返回乙個陣列,包含物件自身的所有屬性 不...

ES6 屬性的遍歷

可列舉屬性 描述物件的 enumerable 屬性成為 可列舉性 如果該屬性為 false,就表示某些操作會忽略當前屬性。for in,object.keys json.stringify 1 for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 2 object.keys ...

ES6 屬性遍歷的方法

es6 一共有 5 種方法可以遍歷物件的屬性。1 for in for in迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 2 object.keys obj object.keys返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含 symbol 屬性 的鍵名。3 obj...