遍歷JS物件,包括enmuerable false

2021-07-29 16:52:50 字數 1563 閱讀 9501

可列舉性(enumerable)用來控制所描述的屬性,是否將被包括在for…in迴圈之中。具體來說,如果乙個屬性的enumerable為false,下面三個操作不會取到該屬性。

* for..in迴圈

* object.keys方法

* json.stringify方法

// 為 object 設定三個自定義屬性(可列舉)

object.prototype.userprop = 'userprop';

object.prototype.getuserprop = function

() ;

// 定義乙個物件,隱式地繼承自 object.prototype

var obj =

};// 設定 unenumerable 屬性為不可列舉屬性

object.defineproperty(obj, 'unenumerable', );

es6 之後,共有以下 5 種方法可以遍歷物件的屬性。

for…in: 遍歷物件自身的和繼承可列舉屬性(不含 symbol 型別的屬性)

for (let key in obj) 

//["name", "age", "skills", "getskills", "userprop ", "getuserprop "]

object.keys(obj):返回乙個陣列,包括物件自身的(不含繼承的)所有可列舉屬性(不含 symbol 型別的屬性)

object.keys(obj);  

// ["name", "age", "skills", "getskills"]

object.getownpropertynames(obj):返回乙個陣列,包含物件自身的所有屬性(不含 symbol 型別的屬性,不包含繼承屬性,但是包括不可列舉屬性

object.getownpropertynames(obj);

// ["name", "age", "unenumerable", "skills", "getskills"]

object.getownpropertysymbols(obj):返回乙個陣列,包含物件自身的所有symbol型別的屬性(不包括繼承的屬性)

object.getownpropertysymbols(obj);

// [symbol(symbol 屬性)]

reflect.ownkeys(obj):返回乙個陣列,包含物件自身的所有屬性(包含 symbol 型別的屬性,還有不可列舉的屬性,但是不包括繼承的屬性)

reflect.ownkeys(obj);

// ["name", "age", "unenumerable", "skills", "getskills", symbol(symbol 屬性)]

js 物件遍歷

先介紹一下物件的可列舉屬性和不可列舉屬性 js中 物件的屬性可分為可列舉屬性和不可枚屬性,是否可列舉由屬性的enumerable的值決定。最簡單的方法便是for in遍歷出來的屬性都是可列舉的屬性 包括自己的屬性可繼承的屬性 2 for in 遍歷物件的可列舉屬性,包括自有屬性和繼承自原型的屬性 上...

js 陣列遍歷 物件遍歷

一 陣列遍歷 1,普通for迴圈,經常用的陣列遍歷 var arr 1,2,0,3,9 for var i 0 i 2,優化版for迴圈 使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯 for var j 0,len arr.length j len j 3,foreach,es...

js物件的遍歷

1 什麼是遍歷 所謂遍歷就是在資料的集合中進行逐一獲取或檢視,就好像是乙個盒子裡有十個球,乙個個拿出來放在桌面上一樣。2 如何遍歷 2.1 陣列其實就是乙個物件,有序的集合,可以根據索引遍歷,索引從0開始,按照順序到length 1結束 例 var arr hello 4,5,6,world for...