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