2017-02-18 10 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 
      }... 

    }; 

ここで、アップグレードについての情報が含まれるように、さらに深く進めたいと思います。したがって、各ビジネスの中には、彼らが持っているすべてのアップグレードに関する情報があります。これらのアップグレードは第3レベルに表示されます。私は現在、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'関数の外部ではアクセスできません。また、 'window'を参照するグローバルな' self'があります。 – Teemu

+0

このサイトにアクセスした場合、http://deano.me/2012/05/javascript-basic-multi-dimensional-associative-arrays/にある "Arrays - Associative"を見ると、アレイがより深くなり、3つのレベル私のために2つだけに。どうすればいい? – 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

Ok done!ありがとう:)私はこれを次のようにしているので、コードはかなり乱雑です。アップグレード:{'CreditCard':false} ...オブジェクトを外部に作成してビジネスオブジェクトに挿入することは可能でしょうか? – epayne

関連する問題