Javascript 如何遍历一系列问题并存储在一系列用户输入中?

Javascript 如何遍历一系列问题并存储在一系列用户输入中?,javascript,jquery,arrays,forms,for-loop,Javascript,Jquery,Arrays,Forms,For Loop,当我试图将一系列问题写入文档时,我在尝试正确地迭代这些问题时遇到了问题。 我在下面包含的第一段代码基本上就是我想要实现的,只是我想在没有提示的情况下完成它。 我创建了一个名为question[]的数组,它现在存储3个问题字符串。带有提示(问题[i])的for循环接受问题[]中的每个问题,并提示用户回答。然后它将该值推送到我创建的另一个名为character[]的数组中 我尝试了两种不同的方法来使用.append方法完成这项工作,但不幸的是没有成功,我想我可以在几个不同的方面找出我的缺陷 在最后一



当我试图将一系列问题写入文档时,我在尝试正确地迭代这些问题时遇到了问题。 我在下面包含的第一段代码基本上就是我想要实现的,只是我想在没有提示的情况下完成它。 我创建了一个名为
question[]
的数组,它现在存储3个问题字符串。带有
提示(问题[i])
的for循环接受
问题[]
中的每个问题,并提示用户回答。然后它将该值推送到我创建的另一个名为
character[]
的数组中

我尝试了两种不同的方法来使用.append方法完成这项工作,但不幸的是没有成功,我想我可以在几个不同的方面找出我的缺陷
在最后一段代码中,我试图将
question[]
中的问题附加到页面上,然后让文档监听要更改的输入值,或者要按下Enter键(键13)。 另外,请注意,我已将所有这些都包装在以下函数中:
$(文档).ready(函数(){…}

var question = [
    '<br> What is your name?',
    '<br> Are you man or woman?',
    '<br> What is your class?'
];   
var character = [];

//For Loop Using prompt()
for (i = 0; i < question.length; i++) {
     var input = prompt(question[i]);
     character.push(input);
     alert(character[i]);
}
var问题=[
“
你叫什么名字?”, “
你是男人还是女人?”, “
你的班级是什么?” ]; 变量字符=[]; //使用prompt()进行For循环 对于(i=0;i

//For循环试图使用HTML“”
对于(i=0;i

for(i=0;i
我不会让循环一次显示一个问题,而是让循环一次显示所有问题,而我似乎也无法让它接受用户输入。
我真的不知道该怎么做,也不知道我到底缺少什么知识,因为我似乎无法在网上找到答案。

再一次,总结一下我的问题:
如何从页面本身的数组中询问问题,让页面等待响应,将该响应存储在另一个数组中,然后再次执行该操作,直到完成整个数组?

非常感谢您的时间!我将非常感谢您的帮助!

您可以使用递归方法,将逻辑封装到函数中提出问题,完成此过程后,再使用下一个问题调用此函数。请注意,我已删除警报对话框,并将其替换为
控制台.log()
在所有过程结束时,只需稍微清理一下逻辑即可

var问题=[
“
你叫什么名字?”, “
你是男人还是女人?”, “
你的班级是什么?” ]; 变量字符=[]; 常量askQuestion=(idx)=> { 如果(idx>=问题长度) { console.log(字符); 返回; } 字符推送(提示(问题[idx]); 询问问题(idx+1); }
askQuestion(0);
由于您希望在页面上获取问卷(无提示),因此可以使用jQuery事件控制主页上问题的闪烁,还可以在数组中按顺序记录答案。 以下是您可以做的:

var问题=[
“你叫什么名字?”,
“你是男人还是女人?”,
“你上什么课?”
];
var i=0;
var ans=[];
$(文档).ready(函数(){
$(“#ques”).html(问题[i]);
});
$(“#答案”)。单击(函数(){
ans.push($(“#ans”).val());
$(“#ans”).val(“”);
i++;
$(“#ques”).html(问题[i]);
$(“#应答”).html(JSON.stringify(ans));
如果(i==问题长度){
$(“#ans”).hide();
$(“#答案”).hide();
$(“#ques”).html(“你已经回答了所有的问题!”);
}
});

答复

Hi@Shidersz!谢谢你的回复。我不确定这个网站上的所有礼仪规则是什么,因为我是新来的,但我希望你不要觉得我明天回来仔细检查你的答案有失礼貌,因为我马上就要睡着了!安静地睡吧,你可以在有时间的时候检查答案,没有问题规则就是这样。
//For Loop Attempting to Use HTML '<input>'
<input id="user-input" placeholder="Type Here"></input>

for (i = 0; i < question.length; i++) {
    $('#game-text').append(question[i]);
    $('#user-input').onchange = function() {
        var userInput = input.value;
        character.push(userInput);
    }
}
for (i = 0; i < question.length; i++) {
    $('#game-text').append(question[i]);
    $(document).keypress(function(key){
    if(key.which === 13 && $('#user-input').is(':focus')) {
        var input = $('#user-input').val();
        character.push(input);
    }
})