for ... in 迴圈
警告
… in 用於迭代物件鍵,而不是陣列索引。通常不鼓勵使用它來遍歷陣列 。它還包括原型中的屬性,因此可能需要使用hasOwnProperty
檢查金鑰是否在物件內。如果物件中的任何屬性由defineProperty/defineProperties
方法定義並設定引數enumerable: false
,則這些屬性將無法訪問。
var object = {"a":"foo", "b":"bar", "c":"baz"};
// `a` is inaccessible
Object.defineProperty(object , 'a', {
enumerable: false,
});
for (var key in object) {
if (object.hasOwnProperty(key)) {
console.log('object.' + key + ', ' + object[key]);
}
}
預期輸出:
object.b,bar
object.c,baz