[英]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.