2017-01-27 20 views
0

理論問題的位,如果我有一個JavaScript應用程序,我有多個球員,每個球員將有100個計算機生成的數學問題。使用For循環將相同的信息推送到兩個陣列

在單人模式中很容易,只是產生了一個玩家的問題:

var player1Qs = []; 
for (i = 0; i < maxQustions; i++) { 
    // Generate Question Object 
    var question = {}; 
    ... 
    // Add to Array 
    player1Qs.push(question); 
} 

與沒有問題的作品。然而,當我使用與上述相同的想法添加第二名選手時,我感到有點困惑。我試圖做,而不使用多維數組,因爲我試圖儘可能簡單,但它可能是不可避免的。

所以玩家2將類似於這樣:

var player1Qs = []; 
var player2Qs = []; 
for (i = 0; i < playerCount; i++) { 
    for (j = 0; j < maxQustions; j++) { 
     // Generate Question Object 
     var question = {}; 
     ... 
     // Add to Array 
     ??? 
    } 
} 

會不會有我的加入這兩個動態數組使用for循環的方法嗎?或者,我是否需要一個包含玩家陣列並且在陣列中提問?

+0

您想添加同樣的問題? –

+0

如果你只有兩個數組,你可以推動這兩個數組。如果還有更多,我會建議製作玩家陣列,然後循環播放這個陣列並推送。 – Fif

+0

「或者我需要一個包含玩家陣列的陣列,並在陣列中提出問題?」 - 是的 –

回答

2

像這樣的東西應該做的伎倆:

// Make sure all players exist. 
var players = []; 
for (var i = 0; i < playerCount; i++) { 
    players.push({ name: "Player " + i, questions: [] }); 
} 

// Create questions 
for (var i = 0; i < maxQuestions; i++) { 
    // Generate Question Object 
    var question = {}; 
    // Do stuff with this question 

    // Assign the current question to all players. 
    for (var j = 0; j < playerCount; j++) { 
     players[j].questions.push(question); 
    } 
} 
+0

只需再次檢查 - 這會爲每個玩家添加相同的問題?看起來會,但認爲我只是仔細檢查? –

+0

是的,你在'i Cerbrus

+0

謝謝 - 我會給這個去:) –

-2

按照這個方法,我假設你有活力的球員及其陣列: -

var data = {}; 
var player = [1,2] 
var c = [1,2,3,4,5] 

    for(j=0;j<player.length;j++) 
    { 
    data['players'] = player; 
    data['questions'] = c 
    } 

console.log(data) 
+0

我不會總是有第二次的球員 - 有時我只有一個玩家和CPU的對手 - 這就是爲什麼我試圖避免第二個推動 –

+0

確定結帳我的編輯答案 –

+0

爲什麼皆爲您使用在那裏循環?你爲循環的每次迭代都做了不同的事情。 – Cerbrus

0

我tryinng做而不使用多維陣列,因爲我試圖儘可能簡化它

我認爲有一個二維數組是最簡單的用例,因爲你在你的問題建議:

或將我需要的球員和內部的一個數組 的問題包含數組?

答案是肯定的(至少如果你想保持簡單)。玩家陣列將會保留所有玩家,每個玩家可以有100個問題。

var maxQustions = 100; 
 
var players= [] 
 
var player1Qs = []; 
 
var player2Qs = []; 
 
players.push(player1Qs); 
 
players.push(player2Qs); 
 
for (i = 0; i < players.length; i++) { 
 
    for (j = 0; j < maxQustions; j++) { 
 
    var question = {}; 
 
    players[i].push(question); 
 
    } 
 
}