用js创建一个二维数组,其第1列保存每道题的标准答案,第2列动态保存用户所选的答案,然后进行对比
时间: 2024-03-05 19:50:20 浏览: 101
好的,以下是用 JavaScript 创建一个二维数组、动态更新用户答案并进行对比的代码示例:
```javascript
// 创建一个二维数组
var answerArray = [
['A', null], // 第一道题的标准答案是 A,用户还未选择
['B', null], // 第二道题的标准答案是 B,用户还未选择
['C', null], // 第三道题的标准答案是 C,用户还未选择
];
// 当用户单击按钮时,更新对应题目的用户答案
function updateAnswer(questionIndex, userAnswer) {
answerArray[questionIndex][1] = userAnswer;
}
// 当用户提交答案时,进行对比
function compareAnswers() {
var correctCount = 0;
var totalCount = answerArray.length;
// 遍历每道题目,进行对比
for (var i = 0; i < answerArray.length; i++) {
// 获取当前题目的标准答案和用户答案
var standardAnswer = answerArray[i][0];
var userAnswer = answerArray[i][1];
// 如果用户未选择答案,则跳过该题目
if (userAnswer === null) {
continue;
}
// 判断用户答案是否正确
if (userAnswer === standardAnswer) {
correctCount++;
}
}
// 输出结果
var resultString = '总共 ' + totalCount + ' 道题,你答对了 ' + correctCount + ' 道题。';
console.log(resultString);
}
// 示例更新第二道题的用户答案为 D
updateAnswer(1, 'D');
// 示例比对所有题目的标准答案和用户答案
compareAnswers();
```
在上面的代码中,我们创建了一个名为 `answerArray` 的二维数组,其中第一列保存了每道题的标准答案(A、B、C),而第二列则初始化为 `null`,表示用户还未选择答案。
然后我们定义了一个名为 `updateAnswer` 的函数,用于更新指定题目的用户答案。该函数接受两个参数:题目的索引(从 0 开始)和用户所选的答案。在函数内部,我们使用数组索引来获取对应题目的数组元素,并将其第二列更新为用户所选的答案。
接着,我们定义了一个名为 `compareAnswers` 的函数,用于对比所有题目的标准答案和用户答案。在函数内部,我们遍历了所有题目,并使用数组索引获取每道题目的标准答案和用户答案。如果用户未选择答案,则跳过该题目。如果用户答案与标准答案相同,则将答题数 `correctCount` 加 1。
最后,我们展示了如何使用 `updateAnswer` 函数来更新第二道题的用户答案为 D,并使用 `compareAnswers` 函数来比对所有题目的标准答案和用户答案。你可以在需要的地方调用 `updateAnswer` 和 `compareAnswers` 函数来动态更新用户答案并进行对比。
阅读全文