2016-12-29 12 views
1

配列にプッシュしているデータがあります。ループを使用するたびにデータを別の配列にプッシュする方法はありますか?

私はループを持ち、毎回別の配列にデータをプッシュする必要があります。

のは、最初の配列がplayer1あるとしましょう、 二番目の配列は、私が今だけ2人の選手を必要とするなどplayer2

でなければなりません。

しかし、私は好きなだけ多くの選手でこれをどうやってやっているのか不思議です。

私はチェスゲームを作ろうとしています。ここに私のコードは、これまでにどのように見えるかです:

function Figuri() { 
    this.player1 = []; 
    this.player2 = []; 
    figurkiNames.forEach(function(figura) { 
    }); 
    for (var y = 1; y <= 2; y++) { 
    for (var i = 0; i < 8; i++) { 
     this.player1.push(new Figurka(i, figurkiNames[i], y, i+1, 8)) 
    } 
    for (var i = 8; i < 16; i++) { 
     this.player1.push(new Figurka(i, "peshka", y, i-7, 7)) 
    } 
    } 
} 

yが1のとき、私は配列にプッシュする必要があります:「player1を」。 yが2のとき、私は配列にプッシュする必要があります: "player2"など。そして、もし私が望むなら、おそらく私は100人のプレイヤーを持つことができます。

JavaScriptでこれを行うにはどうすればよいですか?

+1

にも保存配列やオブジェクト内のすべてのプレーヤー?長さはあなたがどれくらい多くの選手を持っているかを伝えます。 – Shilly

+0

ありがとうございました。 – Ivelin

答えて

3

あなたはダイナミックな選手のリストが必要ですが、それはかなり簡単です。

function Figuri() { 
    var playerCount = 50; 
    this.players = []; 
    for (var p=0; p<playerCount; p++){ 
    players.push(new Player()); 
    } 
    figurkiNames.forEach(function(figura) { 
    }); 
    for (var y = 1; y <= 2; y++) { 
    for (var i = 0; i < 8; i++) { 
     this.players[y].push(new Figurka(i, figurkiNames[i], y, i+1, 8)) 
    } 
    for (var i = 8; i < 16; i++) { 
     this.players[y].push(new Figurka(i, "peshka", y, i-7, 7)) 
    } 
    } 
} 
0

必要なすべてのプレーヤーオブジェクトと、yのインデックスと各プレーヤーオブジェクトの間のマッピングを作成します。上記

`

var map = new Object(); 
map[myKey1] = myObj1; 
map[myKey2] = myObj2; 

function get(k) { 
    return map[k]; 
} 

`

あなたの中のyの値に基づいてマップから値を選択することができたときに、あなたのマップが作成されると....マップを作成する例ですループ。

map[y].push(...) 
0
// Code goes here 

function Figuri() { 
    var players = [], 
    playerCount = 10; 
    for (var i = 0; i < playerCount; i++) 
    players[i] = []; 

    figurkiNames.forEach(function(figura) {}); 
    for (var y = 0; y < playerCount; y++) { 
    var currentPlayer = players[y]; 

    for (var i = 0; i < 8; i++) { 
     currentPlayer.push(new Figurka(i, figurkiNames[i], y, i + 1, 8)) 
    } 
    for (var i = 8; i < 16; i++) { 
     currentPlayer.push(new Figurka(i, "peshka", y, i - 7, 7)) 
    } 
    } 
} 
関連する問題