javascript - 我开始脚本的方式有问题吗?尝试让数组为每个答案输出不同的响应

标签 javascript html arrays

好吧,我认为我的代码的问题与我激活代码的实际 html 页面有关,但我不能确定。 我想做的是通过数组询问两个问题。我希望第二个问题显示“gerp”而不是正确的,并且如果您错了,它会通知您您在第二个问题上是错的。

这是我在页面上用来开始“谜语”的内容:

  <button onclick="myFunction()">Click Me</button>

  <p id="demo"></p>

这是我在与 html 文件分开的 js 文件中使用的代码(抱歉,如果我听起来很傻,我只是想具体一点):

 var i = 0;

var myArray = [{
q: "What was her favorite Color?",
a: "purple" }, {
q: "gymhoaccetpptfe",
a: "rev six nine eleven"}];

   function myFunction() {
   var x;
   var name = prompt(myArray[i].q);
  if (name == myArray[i].a) {
    x = document.getElementById("demo").innerHTML + " " + "Correct!" + " " + "Listen!" 
    + " " +
    "http://www.npr.org/2010/02/12/123534818/carl-sagan-and-ann-druyans-ultimate-mix-tape" 
    ;
    i= i + 1 ;
    document.getElementById("demo").innerHTML = x;
} else if ((name == myArray[i + 1].a)) {
    x = document.getElementById("demo").innerHTML + " " + "gerp!";
    document.getElementById("demo").innerHTML = x;
} else {
    x = document.getElementById("demo").innerHTML + name + " " + "is" + " " + "wrong!";
    document.getElementById("demo").innerHTML = x;
}
}

我只想在正确回答第二个问题时显示“Gerp”。

最佳答案

这是因为在第一个 if 中,您执行了 i=i+1,但在第二个 if 中,对于 gerp,您要检查 i + 1,这将是 2,即第三个要素。除非你需要它是动态的,否则只需使用相应的索引:

...  else if(name == myArray[1].a) { ...

关于javascript - 我开始脚本的方式有问题吗?尝试让数组为每个答案输出不同的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999664/

相关文章:

arrays - 过滤 SwiftyJson 数据

c++ - 如何使用指针打印数组?

javascript - 如何遍历javascript对象以找到多个相似的键

javascript - 将放置区域限制为某些可拖动元素

jquery - MVC jquery ajax调用序列化总是为空

html - ie6 隐藏的 div 背景图像直到悬停才显示

javascript - 如何使用 React 在 typescript 中安全地定义数组数组

javascript - 如何使用 Protractor 获取设置值名字?

javascript - 将 Mongoose 返回的数组转换为常规 JSON

javascript - 在 HTML 页面中显示 XML 属性