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;
} }
所以我有一个主要对象scoreTable
。 players
是包含称为score
的另一个数组的对象数组。所以我想要做的是创建一个totalScore
对象函数,该函数通过players
数组运行循环,该数组在每个score
数组上循环并找出该数组的总和。
我不知道为什么,但是当我在dubugger上运行它时,它会进入第一个for循环,找到第一个数组,然后跳到该函数的末尾而不运行下一个循环。我不确定它为什么这样做。
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++)
}
和下一个循环太'score.length' – corn3lius
哦,男人,我这样一个愚蠢的疏忽。感谢那。 –
尝试以下操作:
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
变量赢得”对顶级循环中的每个新玩家重置。
我打赌总和必须在循环内。 –