2017-10-09 180 views
0

我正在做一個得分應用程序作爲練習,我試圖讓一個對象來計算一個球員的總得分。這是我與掙扎的部分:Javascript:For循環for循環

totalScore: function() { 
    "use strict"; 
    debugger; 
    var sum = 0; 
    for (var i = 0; i < this.players[i].length; i++) { 
    for (var n = 0; n < this.players[i].score[n].length; n++) { 
     sum += this.players[i].score[n]; 
    } 
    this.players[i].totalScore = sum; 
    } } 

所以我有一個主要對象scoreTableplayers是包含稱爲score的另一個數組的對象數組。所以我想要做的是創建一個totalScore對象函數,該函數通過players數組運行循環,該數組在每個score數組上循環並找出該數組的總和。

我不知道爲什麼,但是當我在dubugger上運行它時,它會進入第一個for循環,找到第一個數組,然後跳到該函數的末尾而不運行下一個循環。我不確定它爲什麼這樣做。

+0

我打賭總和必須在循環內。 –

回答

3
for (var i = 0; i < this.players[i].length; i++) { 
    for (var n = 0; n < this.players[i].score[n].length; n++) 
} 

這應該是:

for (var i = 0; i < this.players.length; i++) { 
    for (var n = 0; n < this.players[i].score.length; n++) 
} 
+2

和下一個循環太'score.length' – corn3lius

+0

哦,男人,我這樣一個愚蠢的疏忽。感謝那。 –

0

嘗試以下操作:

totalScore: function() { 
    for (var i = 0; i < this.players.length; i++) { 
     var player = this.players[i]; 
     player.totalScore = 0; 
     for (var n = 0; n < player.score.length; n++) { 
      player.totalScore += player.score[n]; 
     } 
    } 
} 

此修復不僅語法錯誤,而且還和邏輯本身:從戰後初期sum變量贏得」對頂級循環中的每個新玩家重置。