2014-03-19 75 views
2

所以我目前正在寫一個JavaScript遊戲(here用JavaScript here)。目前,對於庫存頁面上的建築物,我將它們的金額存儲在名爲「建築物」的數組中,每個索引對應於特定建築物。然後,當我需要建築物的數量時,我使用建築物[0]。可讀性數組訪問

的問題是,這是相當令人費解!建築物[0]並沒有真正告訴某人正在查看代碼究竟是什麼。我想知道是否有任何方法可以讓這個更容易理解?

+1

JavaScript有對象(鍵/值對)。你已經在你的代碼中使用它們了,那麼爲什麼不把它們用於'buildings'呢? –

回答

0

JavaScript有對象:

var myCar = new Object(); 
myCar.make = "Ford"; 
myCar.model = "Mustang"; 
myCar.year = 1969; 

上面的例子是從MDN's Working With Objects article

在您的情況的一個例子:通過他們

buildings["John's House"].floors; // 2 

即使循環:

var buildings = { 
    "John's House": { 
     floors: 2, 
     resource: "brick" 
    }, 
    "Alice's House": { 
     floors: 1, 
     resource: "wood" 
    } 
}; 

可以使用再拔對象的值

for (var key in buildings) { 
    var building = buildings[key]; 
    console.log(building.resource); 
} 
+0

我應該刪除陣列嗎?數組結構在縮短代碼方面非常有用。 –

+0

爲什麼你需要縮短代碼? –

+0

我想這實際上並不是正確的方式。數組讓我將所有的「購買建築」功能壓縮爲一個單一的功能,我將這個功能傳遞給建築物。 –

0

你的意思是像相當於一個enumerable type

var player = { 
    buildingTypes: { 
     deriv1: 0, 
     combinatorics: 1, 
     computer: 3, 
     high_schooler: 4, 
     etc... 
    } 
} 

然後你可以使用類似:

var building_selected = player.buildingTypes.deriv1;