方法
是否遍歷原型鏈
是否包含symbol屬性
返回結果
for…in是否
輸出的是物件自身的屬性以及原型鏈上可列舉的屬性
object.keys()否否
返回包含物件自身可列舉屬性的陣列
object.getownpropery()否否
返回自身的所有屬性(可列舉屬性和不可列舉屬性)
reflect.ownkeys()否是
返回物件自身的所有屬性(包含symbol或字串,列舉屬性和不可列舉屬性)
遍歷自身以及原型鏈上可列舉的屬性。不包含symbol屬性
執行結果:var obj =
;//在原型鏈上新增屬性
object.prototype.nation =
'中國'
; object.
defineproperty
(obj,
'country',)
; object.
defineproperty
(obj,
'hobby',)
;//使用for in進行遍歷
for(key in obj)
返回的是乙個包含物件自身可列舉屬性的陣列(不含symbol屬性).name:tom
age:12
***:female
nation:中國
執行結果:var obj =
;//在原型鏈上新增屬性
object.prototype.nation =
'中國'
; object.
defineproperty
(obj,
'country',)
; object.
defineproperty
(obj,
'hobby',)
;var resultarr = object.
keys
(obj)
; console.
log(resultarr)
;
["name", "age", "***"]
輸出物件自身所有屬性(包括不可列舉的屬性)
執行結果:var obj =
;//在原型鏈上新增屬性
object.prototype.nation =
'中國'
;//在obj上新增屬性,並設定是否可列舉
object.
defineproperty
(obj,
'country',)
; object.
defineproperty
(obj,
'hobby',)
;var resultarr = object.
getownpropertynames
(obj)
; console.
log(resultarr,obj)
;
以陣列的形式返回物件自身的所有屬性,不管屬性名是symbol或字串,也不管是否可列舉
執行結果:var obj =
;//在原型鏈上新增屬性
object.prototype.nation =
'中國'
;//在obj上新增屬性,並設定是否可列舉
object.
defineproperty
(obj,
'country',)
; object.
defineproperty
(obj,
'hobby',)
;var resultarr = reflect.
ownkeys
(obj)
; console.
log(resultarr)
;
JS遍歷物件和陣列總結
1 使用object.keys 遍歷 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 2 使用for.in.遍歷 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 3 使用object.getownpropertynames obj 遍歷 返回乙個陣列,包含...
JS物件和陣列的遍歷方法
1 使用object.keys 遍歷 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 var obj object.keys obj foreach function key 輸出 a b c 2 使用for.in.遍歷 迴圈遍歷物件自身的和繼承的可列舉屬性 不含sy...
JavaScript遍歷物件和陣列的方法總結
日常開發中我們難免需要對陣列和物件進行遍歷,今天抽空來總結下遍歷陣列和物件常用的方法。我們定義乙個陣列 var arr 2,4,6 1.使用for迴圈遍歷var length arr.length 2.使用foreach遍歷arr.foreach val,index 3.使用for in 遍歷for...