簡體   English   中英

如何遍歷所有對象屬性

[英]How to Iterate through all object properties

我希望遍歷所有對象。 我試圖通過使用來做到這一點

for( var key in obj)

但這並沒有給我所有的財產。 例如,沒有關鍵的“點擊”。 但是當我嘗試做的時候

obj['click']

我有所收獲。

我試圖在IE7上這樣做

for .. in循環遍歷所有enumerable屬性,而不是遍歷所有屬性。

所以我懷疑click不是可以枚舉的,或者你錯過了什么。

有關如何設置通過for .. in循環無法使用的屬性的示例:

var obj = {};

Object.defineProperty(obj, "stealth", {
  enumerable: false,
  value: "you don't iterate over me"
});

// obj.stealth === "you don't iterate over me"

for (var i in obj) {
  // Loop will not enter here
}

您可以使用Object.propertyIsEnumerable()方法測試屬性是否可枚舉(即可在for .. in循環中Object.propertyIsEnumerable()

obj.propertyIsEnumerable('stealth') === false

For / in遍歷所有可枚舉屬性,包括從祖先原型繼承的屬性。 如果您只想要“您的對象”,請使用Object.keys()

Object.keys(yourobject).forEach(function(propertyName) {
  var value = yourobject[propertyName];
  console.log(propertyName + ":", value);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM