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

为何浏览器仅弹出一个确认框?JavaScript代码问题求助

问题解决:JavaScript仅弹出一个确认框的问题

你的代码有两个核心问题导致只弹出一次确认框:

  1. 仅执行了一次quiz()函数:你只在代码末尾调用了一次quiz(),没有循环或递归触发后续的问题弹出。
  2. 终止条件逻辑错误:if (index == questions[index])这个判断完全不符合需求——questions[index]是数组里的对象,和数字类型的index永远不可能相等,这个条件根本不会触发,而且也不是用来判断是否还有剩余问题的正确逻辑。

修复后的代码

var questions = [
  {
    text: "Da li je javascript dobar jezik",
    correctAnswer : true
  },
  {
    text: "Da li je css programski jezik",
    correctAnswer : true
  },
  {
    text: "Da li je php programski jezik",
    correctAnswer: true
  }
]
var index = 0;
var score = 0;

function quiz(){
  // 判断是否所有问题都已处理完成
  if (index >= questions.length) {
    alert(`你的得分是:${score}/${questions.length}`);
    return;
  }
  
  var quizQuestion = confirm(questions[index].text);
  if (quizQuestion === questions[index].correctAnswer){
    score++;
  }
  index++;
  // 递归调用函数,处理下一个问题
  quiz();
}

// 启动问答
quiz();

关键修改说明

  • 添加问题完成判断:用index >= questions.length检查是否所有问题都已处理,完成后弹出最终得分并终止函数。
  • 递归触发后续问题:在处理完当前问题、更新index后,再次调用quiz(),这样就能依次弹出所有问题的确认框。
  • 移除错误的终止逻辑:删掉了完全不符合需求的if (index == questions[index])判断。

这样修改后,浏览器会依次弹出3个确认框,完成所有问题后还会显示你的得分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:25:17