我有一个没有值的分数



我正在创建一个测验,我使用本地存储向用户显示他们以前的尝试。我有个问题。有一次你做测试的时候,最后会显示"得分0"。然后"得分1":实际得分&;我不知道那个0分是怎么来的。如果有人能帮助我,我将不胜感激。

document.querySelector(".check").onclick = function () {
/* Hide unneeded sections and showing scores */
quiz.classList.add("hidden");
correctAnswer.classList.remove("hidden");
/*Showing all previous scores */
const lastScore = localStorage.getItem("latestScore") || "";
const scoreDetail = lastScore.split(',');
scoreDetail.push(score);
localStorage.setItem("latestScore", scoreDetail);
let userScoreTemplate = `<h2>This Round's Score: ${score}</h2>`;
scoreDetail.map((items, index) => {
userScoreTemplate += `<h3>Score ${index}: ${items}</h3>`;
});
let userScoreBoard = document.querySelector(".user-score");
userScoreBoard.innerHTML = userScoreTemplate;
};

${index}初始值为0,因为数组总是从索引0开始。

解决办法:

scoreDetail.map((items, index) => {
index++; //increase index by 1;
userScoreTemplate += `<h3>Score ${index}: ${items}</h3>`;
});

解释TL;博士:大多数编程语言使用从零开始的索引,因为Array是一个指针,索引与指针的内存位置有关。因此,第一个内存位置将为0,第二个插槽将为1。

没关系,我只是必须这样做:

scoreDetail.map((items, index) => {
userScoreTemplate += `<h3>Score ${index}: ${items}</h3>`;
if (items==""){
userScoreTemplate="";
};
});

相关内容

最新更新