Javascript:For循环for循环

问题描述:

我正在做一个得分应用程序作为练习,我试图让一个对象来计算一个球员的总得分。这是我与挣扎的部分: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

我打赌总和必须在循环内。 –

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

哦,男人,我这样一个愚蠢的疏忽。感谢那。 –

尝试以下操作:

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变量赢得”对*循环中的每个新玩家重置。