迭代Javascript数组以计算保龄球得分

迭代Javascript数组以计算保龄球得分,javascript,arrays,Javascript,Arrays,我正在写一个保龄球得分应用程序,正在努力计算我的得分。如果一名球员得分,他们将得到该卷的分数(10分)加上下两卷的分数。我正在尝试解决如何迭代数组以添加下两个滚动的结果。例如,我的分数数组可能是: scores = [10, 1, 5, 1, 2, 10, 5, 2, 10, 10, 8, 1, 10, 3, 2] 我试图迭代数组,以便每次分数为10时,将下两个数字加到总数中。我有以下代码: for (i = 0; i < scores.length; i++) { if(sc

我正在写一个保龄球得分应用程序,正在努力计算我的得分。如果一名球员得分,他们将得到该卷的分数(10分)加上下两卷的分数。我正在尝试解决如何迭代数组以添加下两个滚动的结果。例如,我的分数数组可能是:

scores = [10, 1, 5, 1, 2, 10, 5, 2, 10, 10, 8, 1, 10, 3, 2] 
我试图迭代数组,以便每次分数为10时,将下两个数字加到总数中。我有以下代码:

for (i = 0; i < scores.length; i++) {
    if(scores[i] == 10){
    result += scores[i + 2]
    }
  return result
}
for(i=0;i
这不管用。我对Javascript非常陌生

另外,我知道真正的保龄球游戏有第十帧奖金,但我还没有实现这一功能


非常感谢您的帮助,谢谢

您必须在循环外部存储
结果

let result = 0;

for (i = 0; i < scores.length; i++) {
  if (score[i] === 10) {
    result += scores[i + 1];
    result += scores[i + 2];
  }

  result += score[i];
}
并使用
Array.reduce()

let result=0;
for(设i=0;i
函数totalScore(ScoreArray){
设结果=0;
对于(i=0;i
虽然你也需要额外的检查,你可以自己做


提示:确保数组中存在下两个值。然后只将其添加到
结果中
。如果最后一个值为10,此函数将抛出错误。

OP未在循环中重新声明
result
。他只是没有说明它是在哪里声明的。我真的不太清楚,但是你不应该增加索引以防止在罢工两次后计算两次掷骰吗?虽然这个代码片段可能解决了这个问题,但它没有解释为什么或者如何回答这个问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!
function calculateScore(scores) {
  let result = 0;

  scores.forEach((score, index) => {
    if (score === 10) {
      result += scores[index + 1];
      result += scores[index + 2];
    }

    result += score;
  });

  return result;
}

function calculateScore(scores) {
  return scores.reduce((accumulator, currentValue, index) => {
    if (currentValue === 10) {
      return accumulator + currentValue + scores[index + 1] + scores[index + 2];
    }

    return accumulator + currentValue;
  }, 0);
}
let result = 0;

for (let i = 0; i < scores.length; i++) {
  if (scores[i] === 10) {
    result += (i + 1 < scores.length) ? scores[i + 1] : 0;
    result += (i + 2 < scores.length) ? scores[i + 2] : 0;
  }
  result += scores[i];
}