试图一个接一个地遍历一系列问题

时间:2019-02-11 05:07:31

标签: javascript

我正在尝试使用for循环制作一个简单的是/否调查表,但是当您打入是或否时,我还不太清楚如何使程序移至下一个问题。 (var answ仅记录是和否的数量

var quesBox = ["Are you hungry?", "Are you smart?","Do you like dogs?", "Are you cool?"]
var noReady = "Go away";
var answ = {
    'yes': 0,
    'no': 0
}

yes.addEventListener("click", function() {
    if (yes.style.display="block"){
        for(let i=0; i < 1; i++) {
            ques.innerHTML = (quesBox[i]);
            answ['yes'] += 1;
        }
    }
})

2 个答案:

答案 0 :(得分:0)

if条件使用yes.style.display运算符将"block"分配给=

yes.style.display="block"

使用比较运算符==或严格比较===来比较值。

您可以使用.shift().push()将数组的元素从索引0旋转到数组.length - 1的索引。

var quesBox = ["Are you hungry?", "Are you smart?", "Do you like dogs?", "Are you cool?"]
var noReady = "Go away";
var answ = {
  'yes': 0,
  'no': 0
}

yes.addEventListener("click", function() {
  if (yes.style.display === "block") {
      ques.innerHTML = quesBox.shift();
      quesBox.push(ques.innerHTML);
      answ['yes'] += 1;
  }
})
#yes {
  display: block;
}
<div id="yes" style="display:block">click</div>
<div id="ques"></div>

答案 1 :(得分:0)

您可以尝试一下。有一个全局变量i。每当用户回答问题时,请增加i并增加“是”和“否”的计数。您甚至不需要for循环。

enter code here
 var quesBox = ["Are you hungry?", "Are you smart?","Do you like dogs?", "Are you cool?"]
 var noReady = "Go away";
 var answ = {
    'yes': 0,
    'no': 0
 };
 let i = 0;

 yes.addEventListener("click", function() {    
       if(i>=quesBox.length)  return;  
       ques.innerHTML - quesBox[i];
       answ['yes'] += 1;
       i++;
 });
 no.addEventListener("click", function(){
    if(i>=quesBox.length)  return;
    ques.innerHTML - quesBox[i];
    answ['no'] += 1;
    i++;
});

如果必须使用for循环,则可以设置一个全局变量,该变量将跟踪您总体回答了多少个问题(即,添加是和否)并相应地显示问题。

在您的代码中,您的for循环条件也不正确。