2017-02-18 116 views
0

我目前正在创建一个游戏,我想要存储有关商业的信息,我通过多维关联数组来完成此操作,所以我有一个业务列表和信息列表中的键值对。阵列看起来像这样如何创建复杂的多维关联数组?

Business.list = { 
     0.406411267183554: //First Business 
      { 
       capital : 5 
       cash : 3 
       income: 3 
       expenses : 6 
      }, 
     0.398198718278354: //Second Business 
      { 
       capital : 6 
       cash : 7 
       income: 3 
       expenses : 7 
      }... 

    }; 

现在我想更深入一步,以便它现在包含有关升级的信息。因此,在每项业务中,都会有关于所有升级的信息。这些升级将显示在第三级。我目前对如何使用Javascript进行编程难以理解。我创建业务的方式是使用Javascript Object Prototype。

function Business(name, sector, capital, employees, type, id, efficiency) { 
     var self = { 
     name:name, 
     sector:sector, 
     capital:capital, 
     employees:employees, 
     type:type, 
     id:id, 
     efficiency:efficiency, 

    }; 

然后将其放置到列表

Business.list[id] = self; 
+1

什么不行? –

+0

我不确定你在问什么,但'self'变量不能在'Business'功能之外访问。另外,还有全局的'self',它指的是'window'。 – Teemu

+0

如果你访问这个网站http://deano.me/2012/05/javascript-basic-multi-dimensional-associative-arrays/关于“数组 - 关联”,你可以看到数组更深入,并进行了3级比较我的只有两个。我将如何做到这一点? – epayne

回答

1
var self = { 
    name:name, 
    sector:sector, 
    capital:capital, 
    employees:employees, 
    type:type, 
    id:id, 
    efficiency:efficiency, 
    upgrades: ['CreditCard'] 
}; 

然后

upgrades = Business.list[id].upgrades 

或像这样:

upgrades: { 
    creditCard: false, 
    cash: true 
} 

这是你想要的吗?

+0

哦,在正确的轨道上!而不是信用卡作为一个数组我更期待它是一个关联数组,以便“CreditCard = False” – epayne

+0

然后只是将其更改为对象或数组的对象:) – Janne

+0

好了!谢谢:)代码是相当混乱的,因为我这样做:升级:{'CreditCard':false} ...有可能创建一个对象外部并将其插入到业务对象? – epayne