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

时间:2020-01-06 11:03:17

标签: javascript arrays compare

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

因此,我将使用一个示例供您了解即时消息正在处理的内容,这与我在项目中执行的即时消息并不完全相同,但是功能确实如此。

我有2个数组。第一个数组包含10个国家,第二个数组包含10个首都。资本阵列中位于位置5的首都是我的国家阵列中位于位置5的国家的首都。

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

这对我来说很棘手,如何检查它们以字符串形式编写的,具有与另一个数组相同的索引值(我认为它叫它?)?我完全不知道该怎么做。

我当然可以使用很多if语句,例如if(userInput == Washington)then alert(“ Correct!”)。

但是这不是我想要的方式,因为稍后我将为用户添加一个选项,以添加他们自己的coutry / captials。

我真的觉得这很混乱,所以如果您不理解,请提出问题,我将尝试进一步分解,谢谢您的耐心,欢呼!

1 个答案:

答案 0 :(得分:1)

由于数组Country和array 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 ri更改为var randomGlosa

下一个问题是此函数不会返回任何内容。这是一个空函数。我不知道您在课程中使用的功能有多远。 当没有“主”程序需要处理的输出时,将使用虚函数。在这种情况下,我们确实很在意,因为我们需要一个随机数。此外,除非您的分配希望它是一个函数,否则它根本不必是一个函数。因此,我们可以定义一个在整个脚本中可用的变量,或者您应该给它一个返回值。基于调用函数的方式。

您创建的for循环没有任何用途。您可以列出并遍历每个元素,但是根本不使用任何元素。在i=0旁边应该是我的声明,因此var i=0let 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事件的按钮正在调用这些函数。

相关问题