Javascript 如何比较两个数组的索引值?

Javascript 如何比较两个数组的索引值?,javascript,arrays,compare,Javascript,Arrays,Compare,我已经接受了3个月的教育,我将学习不同的语言,如HTML、CSS、JS等等。目前,我正在苦苦寻找解决方案,主要是因为我是新来的,不知道该找什么。我正在创建一个网站,不会上传到互联网上,只为老师展示我有不同类型的小游戏。为了展示我到目前为止学到的东西,以及我能做的事情,我们当然可以在网上搜索 所以我会用一个例子来告诉你我在处理什么,这和我在我的项目中所做的并不完全一样,但功能是一样的 我有两个数组。第一个数组包含10个国家,第二个数组包含10个首都城市。首都阵列中第5位的首都,是我国首都阵列中第5

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

所以我会用一个例子来告诉你我在处理什么,这和我在我的项目中所做的并不完全一样,但功能是一样的

我有两个数组。第一个数组包含10个国家,第二个数组包含10个首都城市。首都阵列中第5位的首都,是我国首都阵列中第5位的国家首都

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

这对我来说是个棘手的问题,我怎样才能检查他们写的字符串是否具有相同的索引值,我想这就是所谓的索引值?作为另一个数组?我完全不知道这是怎么做到的

我当然可以使用很多if语句,比如ifuserInput==Washington-then-alertCorrect

但是,我不想这样做,因为我稍后将为用户添加一个选项,以添加他们自己的国家/资本


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

由于您的阵列国家和阵列资本具有相同的指数,我认为它们将始终具有相同的指数。您可以使用Math.random函数生成一个数字。像你一样

你已经知道答案了,因为国家[1]应该有作为答案的资本[1] 所以你要检查他们写的是否与你的答案一致。这就是你所知道的

因此,我们想知道用户输入是否等于math.random索引处的大写数组:

  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 ri更改为var randomGlosa

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

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

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

那么它应该是什么样子的:

//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事件的按钮调用的。

Wow当我读到你的评论时,它看起来很合乎逻辑,我觉得自己很愚蠢。然而,当我尝试这个方法时,我现在发现math.random的数组和变量是未定义的。我的函数上面有这些变量=xxxxx。有什么想法吗你能解释一下你到底尝试了什么并分享代码吗。我只是想解释一下我的想法。我把它添加到你的帖子中,我本想把它添加到帖子中,但我还不太习惯这里的工作方式:还有人们喜欢我如何看到代码,其他一些人编辑并删除了它。你可以把它放在主帖子或创建一个。明天我会帮你解决这个问题