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

JavaScript球员年龄预测程序故障:输入36匹配首图无效

问题根源

你的代码中index初始值为0(对应第一张图片),但tahminEt函数里的年龄判断逻辑是从index === 1开始赋值的——第一张图的index是0,完全没进入正确的年龄赋值分支,直接走到else块返回错误提示,这就是输入36匹配第一张图时程序无正确响应的原因。

修复方案

将tahminEt函数中的年龄判断索引整体减1,让索引值与图片顺序一一对应(索引0对应第一张图):

function tahminEt() {
  var dogruYas;

  // 根据索引设置正确的年龄值(索引从0开始匹配第一张图)
  if (index === 0) {
    dogruYas = 36; // 梅西的年龄
  } else if (index === 1) {
    dogruYas = 32;
  } else if (index === 2) {
    dogruYas = 38;
  } else if (index === 3) {
    dogruYas = 31;
  } else if (index === 4) {
    dogruYas = 36;
  } else {
    document.getElementById('sonuc').textContent = "很遗憾,您的预测错误。";
    return; // 未定义正确年龄值时,退出函数
  }

  // 以下代码保持不变
  var tahmin = parseInt(document.getElementById('tahmin').value);

  if (isNaN(tahmin)) {
    document.getElementById('sonuc').textContent = "请输入有效的数字。";
  } else {
    if (tahmin === dogruYas) {
      document.getElementById('sonuc').textContent = "恭喜!您的预测正确。";
      show_slide(1);
    } else {
      document.getElementById('sonuc').textContent = "很遗憾,您的预测错误。";
    }
  }
}

额外优化建议

可以把年龄数据抽成数组替代冗余的if-else判断,后续新增图片时只需在数组中添加对应年龄,代码更简洁易维护:

function tahminEt() {
  // 用数组存储对应索引的正确年龄,索引0对应第一张图
  const ageMap = [36, 32, 38, 31, 36];
  const dogruYas = ageMap[index];

  if (dogruYas === undefined) {
    document.getElementById('sonuc').textContent = "很遗憾,您的预测错误。";
    return;
  }

  // 以下代码保持不变
  var tahmin = parseInt(document.getElementById('tahmin').value);

  if (isNaN(tahmin)) {
    document.getElementById('sonuc').textContent = "请输入有效的数字。";
  } else {
    if (tahmin === dogruYas) {
      document.getElementById('sonuc').textContent = "恭喜!您的预测正确。";
      show_slide(1);
    } else {
      document.getElementById('sonuc').textContent = "很遗憾,您的预测错误。";
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:55:01