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

如何为数组元素赋值并关联国旗名称,实现猜图游戏输入校验?

解决方案

核心思路是把国旗路径和对应国家名称绑定存储,用对象数组来管理数据,这样随机抽取时能同时拿到图片和正确答案,方便和用户输入做对比。

步骤1:重构数据结构

把原来的单一路径数组改成对象数组,每个对象包含国旗路径和对应国家名称:

// main.js
// 生成0-9的随机数(对应数组索引,避免越界)
const randomNum = Math.floor(Math.random() * 10);
// 对象数组:每个元素存国旗路径+对应国家名
const flags = [
  { src: "../assets/flagImages/ad.png", country: "安道尔" },
  { src: "../assets/flagImages/ae.png", country: "阿拉伯联合酋长国" },
  { src: "../assets/flagImages/af.png", country: "阿富汗" },
  { src: "../assets/flagImages/ag.png", country: "安提瓜和巴布达" },
  { src: "../assets/flagImages/ai.png", country: "安圭拉" },
  { src: "../assets/flagImages/al.png", country: "阿尔巴尼亚" },
  { src: "../assets/flagImages/am.png", country: "亚美尼亚" },
  { src: "../assets/flagImages/ao.png", country: "安哥拉" },
  { src: "../assets/flagImages/aq.png", country: "南极洲" },
  { src: "../assets/flagImages/ar.png", country: "阿根廷" }
];
// 保存当前选中的正确答案,方便后续对比
let correctCountry = flags[randomNum].country;

步骤2:更新图片渲染逻辑

修改HTML里的脚本,渲染随机选中的国旗:

<!-- index.html -->
<script>
  document.write(`<div id="flagImage"><img src="${flags[randomNum].src}" alt="Flag" width="250px"></div>`);
</script>

步骤3:实现答案对比功能

添加输入框和按钮,监听用户提交事件,对比输入内容与正确答案:

<!-- index.html 新增交互区域 -->
<input type="text" id="userInput" placeholder="输入国家名称">
<button onclick="checkAnswer()">提交答案</button>
<p id="result"></p>

<script>
function checkAnswer() {
  const userInput = document.getElementById('userInput').value.trim();
  const resultElement = document.getElementById('result');
  // 转小写对比,忽略大小写差异
  if (userInput.toLowerCase() === correctCountry.toLowerCase()) {
    resultElement.textContent = "答对了!";
    resultElement.style.color = "green";
  } else {
    resultElement.textContent = `答错了,正确答案是:${correctCountry}`;
    resultElement.style.color = "red";
  }
}
</script>

小优化说明

  • 用Math.floor()替代Math.round():避免随机数出现超出数组范围的情况,确保索引始终在0-9之间
  • 对比时统一转小写:提升用户体验,不用严格区分大小写
  • 用const/let替代全局变量:减少作用域冲突问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:55:19