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

标签 javascript arrays compare

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

所以我将使用一个例子来让你知道我正在处理什么,但这与我在我的项目中所做的并不完全相同,但功能是。

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

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

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

我当然可以使用很多 if 语句,例如 if(userInput == Washington) thenalert("正确!")。

但这不是我想要的方式,因为我稍后会添加一个选项,让用户添加自己的国家/大写字母。

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

最佳答案

由于您的数组 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 ri 更改为 var randomGlosa

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

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

如果删除 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 事件的按钮调用的。

关于javascript - 如何比较2个数组的索引值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610929/

相关文章:

c++ - float 比较技巧 : inline assembly

javascript - 根据类别添加空格以保存文本文件

C++ 如何确定字母表中一个单词是否在另一个单词之前

c - 未调用 qsort 比较函数?

javascript - 在 onclick 函数之后使用循环从数组调用字符串 [javascript]

c++ - 从不兼容的类型分配给 Double?

arrays - 将两个有序数组合并为一个有序数组

javascript - AngularJS 过滤器将日期与 ID 进行比较 - ng-show

javascript - javascript中的Grails <g:set标记

javascript - JSLint 错误 'body of a for in should be wrapped in an if statement' 是什么意思?