You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用数组与循环实现JS答题功能:无法逐个显示题目问题咨询

问题核心原因
  • 你写的for循环是同步执行逻辑,运行时会直接遍历完所有题目一次性输出,不会等待用户回答完成再加载下一题,这是题目无法逐个显示的核心原因
  • console.log()仅支持控制台内容打印,无法接收用户输入,你定义的answer变量实际取值为undefined,永远无法匹配正确答案的判断分支
可直接运行的实现方案

浏览器环境下可以用prompt()获取用户输入,用递归逻辑代替for循环控制答题流程,完美匹配你要的交互逻辑:

let questions = [
    ["1. 美国现任总统是谁? ", "Joe Biden"],
    ["2. 判断对错:60分钟等于1小时? ", "True"],
    ["3. 一年有多少个月? ", "12"]
];
let correctAnswers = 0;
// 记录当前答题进度
let currentQuestionIndex = 0;

// 加载下一题的逻辑
function loadNextQuestion() {
    // 所有题目作答完毕,展示最终结果
    if (currentQuestionIndex >= questions.length) {
        alert(`答题结束,共答对${correctAnswers}道题`);
        return;
    }
    // 展示当前题目,获取用户输入
    const userInput = prompt(questions[currentQuestionIndex][0]);
    // 答案判断
    if (userInput === questions[currentQuestionIndex][1]) {
        alert("回答正确");
        correctAnswers++;
    } else {
        alert(`回答错误,正确答案为:${questions[currentQuestionIndex][1]}`);
    }
    // 进度加1,加载下一题
    currentQuestionIndex++;
    loadNextQuestion();
}

// 启动答题程序
loadNextQuestion();

如果是Node.js环境开发,需要引入内置readline模块处理异步用户输入,核心逻辑同样是用递归控制出题顺序,不要使用同步for循环即可实现题目逐个展示的效果。

内容的提问来源于stack exchange,提问作者Jeanie Farrell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 22:36:10