我有對象的簡單對象:爲什麼這些屬性不能枚舉?
window.abilities = {
migrate:{
name:"Migrate",
description:"Move your tribe to another area; generate all new resources. Takes one time unit.",
image:"migrate.png",
action:"Migrate",
unlocked:true
},
eradicate:{
name:"Eradicate species",
description:"Remove a troublesome plant or animal",
image:"migrate.png",
action:"Eradicate",
unlocked:false
}
}
我使用的是爲... ...在循環遍歷該對象,並生成UI元素:
for(ability in window.abilities){
if(ability.unlocked){
$("#abilities").append(genAbilityCard(ability.name,ability.image,ability.description,ability.action));
}
}
然而,每個能力變量是空的 - 它只有鍵而不是屬性(名稱,描述等等)。這些屬性看起來是不可數的 - 即使以這種方式創建的屬性在默認情況下應該是可枚舉的!
如何隱式地使這些屬性枚舉,而不使用Object.defineProperty或類似的笨拙東西?通過使用for..of
和Object.values
可能的重複[如何循環或枚舉JavaScript對象?](https://stackoverflow.com/questions/684672/how-do-i-loop-through-or-enumerate-a-javascript-目的)。這是一個古老而且很好回答的問題,循環只能讓你獲得鑰匙。 –