首页 > 解决方案 > 如何比较2个数组的索引值?

问题描述

我已经接受了 3 个月的教育,在那里我将学习不同的语言,如 HTML、CSS、JS 等等。目前我正在努力寻找解决方案,主要是因为我是新手,我不确定要寻找什么。我正在创建一个网站(不会上传到互联网,只显示给老师),我有不同类型的小游戏。只是为了展示我到目前为止所学到的东西,以及我能做什么(我们当然可以搜索网络)。

因此,我将使用一个示例让您知道我在处理什么,这与我在我的项目中所做的不完全相同,但功能是。

我有 2 个数组。第一个数组包含 10 个国家,第二个数组包含 10 个首都。京城阵中5号位的京城,是我国阵5号阵地的国都。

这适用于所有选项。我还制作了一个 DIV 标签,其中 Math.random 随机选择 1 个国家......并将其显示在 DIV 容器中。我有一个输入 type="text" 字段供用户输入该国家的首都。

这对我来说很棘手,我如何检查他们写的字符串是否与另一个数组具有相同的索引值(我认为它被称为?)?我完全不知道这是如何完成的。

我当然可以使用很多 if 语句,比如 if(userInput == Washington) 然后 alert("Correct!")。

然而,这不是我想要的方式,因为我稍后会为用户添加一个选项来添加他们自己的 coutries/captials。

我真的觉得这很混乱,所以如果你不明白,请提出问题,我会尝试进一步分解,谢谢你的耐心,干杯!

标签: javascriptarrayscompare

解决方案


由于您的数组 Country 和数组 Capital 具有相同的索引(我假设它们将始终具有)。您可以使用 Math.random 函数生成一个数字。(像你所做地)

你已经知道答案了,因为 Country[1] 应该有作为答案 Captial[1] 所以你想检查他们写的内容是否等于你的答案。这就是你所知道的。

所以我们想知道用户输入是否等于 math.random 索引处的 Capital 数组:

  If(userinput === Captial[math.random number here]) //do your stuff

有一些函数可以帮助您检查字符串。因为如果您有“伦敦”或“伦敦”,答案的正确性可能会有所不同。

我认为最重要的不是代码。但思维过程。

__ 编辑:根据您提供的代码,有几件事。

首先,userEnter == glosorSV[ri]变量 ri 尚未定义。这有两个原因:永远不会调用要生成随机数的函数,即使调用它也不会返回数字。

 function randomizeWord(){
 var ri = Math.floor(Math.random() * glosorEng.length);
document.getElementById("contentG").innerHTML = glosorEng[randomGlosa];

你有这个功能,它会创建一个随机数。但是随后您使用变量randomGlosa在数组中选择一个元素,而 randomGlosa 未定义。包含随机数的变量称为 ri,所以你想把它改成或者你想glosorEng[ri]改成var rivar randomGlosa

下一个问题是这个函数没有返回任何东西。这是一个空函数。我不知道你在课程中的功能有多远。当没有“主”程序需要处理的输出时,使用无效函数。在这种情况下,我们确实关心,因为我们需要一个随机数。此外,它根本不必是一个函数,除非你的任务希望它是一个函数。所以我们可以定义一个在整个脚本中可用的变量,或者你应该给它一个返回值。根据您调用函数的方式。

您创建的 for 循环没有任何用途。您获取一个列表并遍历每个元素,但您根本不使用任何元素。旁边i=0应该是 i so var i=0or的声明let i = 0。关于 var 和 let,您应该查找 let 和 const 来声明变量,除非您的作业和阅读材料不使用它。然后注意存在另一种更新的声明方法。

如果您删除 for 循环,则不需要 return,因为您的 return 没有值,该函数将自动停止。它也会这样做。

那么它应该是什么样子:

//Have your vars here:
var 1 = ...
var 2 = ...
var ri = 0;

function randomizeWord(){
ri = Math.floor(Math.random() * glosorEng.length);
document.getElementById("contentG").innerHTML = glosorEng[ri];
 }

function checkAnswer(){
    //Get user input
     if(userEnter === glosorSV[ri])
     //Logic here for the alerts
} 

我假设这些函数是由带有 onclick 事件的按钮调用的。


推荐阅读