2012-01-20 16 views
0

私は基本的に一連のシナリオを格納するプログラムを書いています。これらのシナリオは、一度に1つずつ、ランダムな順序で1つだけ取り出す必要があります。私は配列をシャッフルするためにFisher-Yatesシャッフルを使用していますが、私は各シナリオの個々の側面を保存するのに最適な方法について興味があります。現在、私は数字を使用しており、各シナリオに対応するシナリオを計算するだけです。 (例えば、それがカードの場合、各スーツは0から3の番号が割り当てられ、配列のカード番号はカード番号(1-13)+(13 *スーツ)となります。配列やオブジェクトにデータを格納する方が効率的ですか?

これは非常に良い選択ではないと思います。多次元配列を使用してデータを格納するか、オブジェクトの配列を使用して交換したいと考えています。どちらがより良い/より効率的でしょうか?

+0

これらの数百億または数十億を持たない限り、それは問題ではありません。 – Jon

+0

私は知っていますが、はるかに大量のデータに対する答えが不思議です。 – CSturgess

答えて

2

JavaScript配列aren't really arrays従来のメモリブロックの意味では、エントリのサイズを乗算した数値インデックスを使用してインデックスを作成します。それらは、プロパティ名のクラス(すべての数字が  —、例えば "indexes")とlengthのプロパティ(さらに、それらはArray.prototypeのバックスラッシュを持ち、配列インスタンスにはsliceなど)。 (詳細については、上にリンクされた記事または仕様のSection 15.4を参照してください)

したがって、配列 "インデックス"を特別に扱う必要がない場合は、オブジェクトを使用してください。

+0

https://developer.mozilla.org/ja/JavaScript_typed_arrays – jAndy

+0

@jAndy:はい、真の配列を追加する動きがあります。これまでのところFirefoxとChromeのみ(Safariについてはわからない)。 –

関連する問題