用Javascript计算分数

用Javascript计算分数,javascript,Javascript,正如标题所示。我该怎么做 我一定会使用纯JS,而且我对它很陌生(就像真的很新一样)。所以请原谅我的noob问题。:) 我的代码如下所示: if (questionArr[questionId].choices[k].tf === true) { score = score + questionArr[questionId].choices[k].points; //add points if answer is correct } else { if ((score - questi

正如标题所示。我该怎么做

我一定会使用纯JS,而且我对它很陌生(就像真的很新一样)。所以请原谅我的noob问题。:)

我的代码如下所示:

if (questionArr[questionId].choices[k].tf === true) {
   score = score + questionArr[questionId].choices[k].points; //add points if answer is correct
} else {
   if ((score - questionArr[questionId].choices[k].points) > 0) {
       score = score - questionArr[questionId].choices[k].points; //subtract points if answer is wrong
   } else {
      score = 0;
   }
}
我的问题是这样的:假设这个问题有4个答案,第一个给5分,第二个错了,减去6分,第三个错了减去3分,第四个正确,给10分

所以我想最后得到6分,因为:

+5 -6 -3 = -4
-4 +10 = 6
不幸的是,当我运行它的时候,我的代码似乎在减少我猜测的当它达到0时的数字。这使我无法在分数低于0时计算分数。最后,如果总分保持在0以下,我希望它自动设置为0,这就是我试图在最后用else做的


我希望有人能帮我解决这个问题,因为我不太知道如何解决这个问题。

看起来您只需要将if语句移到(大概)循环所有问题的代码之外。即:

//guessing start of for loop that sets questionId and k
if (questionArr[questionId].choices[k].tf === true) {
    score = score + questionArr[questionId].choices[k].points; //add points if answer is correct
} else {
    score = score - questionArr[questionId].choices[k].points; //subtract points if answer is wrong
}
//end of loop
if (score < 0) score = 0;
//猜测设置questionId和k的for循环的开始
if(questionArr[questionId].choices[k].tf==true){
score=score+questionArr[questionId]。选项[k]。分数;//如果答案正确,则添加分数
}否则{
score=score-questionArr[questionId]。选项[k]。分数;//如果答案错误,则减去分数
}
//循环结束
如果(得分<0)得分=0;

我认为您需要添加更多的代码,什么是
k
?也许计算分数时不必考虑负数,然后在循环之后(我猜在这里,您正在使用
k
?)重复所有问题)检查数字是否为负数。