【发布时间】:2016-12-19 15:21:41
【问题描述】:
我制作了某种类型的猜词游戏,基于向用户显示某些单词的描述并将用户输入的值与预定义的单词进行比较。我实现的逻辑如下:
- 在全局范围内,有一个数组,里面有对象(例如 arr = [ {desc1, word1}, {desc2, word2}......]
- 单击“开始”按钮时,我想显示第一个对象的描述(desc)。 (例如 arr[0].desc )
- 用户输入一些单词并按下“提交”按钮。
- 按下“提交”时,程序会检查用户输入的单词是否与数组中的单词相同(第一次运行时为 word1)。然后,程序会根据比较结果进行随机处理。
- 程序然后迭代到数组中的下一个对象,并继续这个直到最后一个对象。
- 然后在迭代结束后显示最终结果。
我遇到的问题是循环猖獗 (infinte-loop) 或者不做直接进入最终结果 任何东西。
我不知道如何让程序等待/停止,直到用户输入内容并按下提交然后迭代循环。也不能使用 if-else 循环,因为除非我使用某种 setTimeout() 让用户有足够的时间输入内容,否则 else 将始终为真,但它看起来很笨重,而且只是一些创可贴的方法。
解决这类问题还有其他逻辑吗?谢谢。
【问题讨论】:
-
5) 你说程序遍历数组并继续直到最后一个对象。循环在做什么。当您说它进入(无限循环)或直接到最后时,您希望它做什么?程序是否应该循环遍历数组,根据描述提示用户输入单词?
-
是的,程序循环遍历数组,在一个框中打印出描述,并有另一个空间供用户猜测单词。然后循环内的另一个条件将用户输入的单词与数组中的单词进行比较并显示一些结果。然而问题是循环不关心内部事件,要么永远循环,要么迭代到最后一个对象并结束。循环结束前用户无法输入内容
标签: javascript arrays events dom