javascript - 如何遍历一系列问题并将其存储在一系列用户输入中?

标签 javascript jquery arrays forms for-loop



当我尝试将问题写入文档时,我在尝试正确遍历一系列问题时遇到了问题。 我在下面包含的第一段代码基本上就是我想要实现的目标,除非我希望在没有提示的情况下使用它。 我创建了一个名为 question[] 的数组,它现在存储 3 个问题字符串。带有 prompt(question[i]) 的 for 循环获取 question[] 中的每个问题并提示用户回答。然后将该值推送到我创建的另一个名为 character[] 的数组。

我已经尝试了几种不同的方法来使用 .append 方法完成此操作,但不幸的是无济于事,我想我可以将我的陷阱找出几个不同的领域。
在最后的代码块中,我试图将 question[] 中的问题附加到页面上,然后让文档监听要更改的输入值,或者 Enter(键13) 被压制。 另外,让大家知道我已将所有这些包装在以下函数中:
$(文档).ready(function(){...}

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]);
}

//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);
    }
})

我不是让循环一次显示一个问题,而是让循环一次显示所有问题,但我似乎也无法让它接受用户输入。
我真的不确定如何处理或我缺少的知识到底是什么,因为我似乎无法在线找到这个问题的答案。

同样,总结一下我的问题是:
我如何从页面本身的数组中提出问题,让页面等待响应,将该响应存储在另一个数组中,然后再次执行此操作直到我遍历整个数组?
非常感谢您的参与!非常感谢您的帮助!

最佳答案

您可以使用递归方法,将提出问题的逻辑包装在一个函数中,当这个过程完成后,再次调用这个函数处理下一个问题。请注意,我已经删除了警报对话框,并在所有过程结束时用 console.log() 替换它们,只是为了稍微清理一下逻辑。

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

const askQuestion = (idx) =>
{
    if (idx >= question.length)
    {
        console.log(character);
        return;
    }

    character.push(prompt(question[idx]));
    askQuestion(idx + 1);
}

askQuestion(0);

关于javascript - 如何遍历一系列问题并将其存储在一系列用户输入中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156764/

相关文章:

JavaScript 不适用于 HTML5

javascript - 如何将 Ajax 响应中的值附加到 JavaScript 中的数组?

javascript - IE 语法错误

arrays - 在 bash 函数中定义一个本地数组并在该函数外部访问它

PHP 如何根据字符串内容将字符串列表(数组)转换为嵌套数组

javascript - 在 vuex 操作中使用 fetch 方法

javascript - Vue 自定义指令使用更新的 Dom(或 $el)

javascript - 尝试使用 jQuery 设置 onClick 事件

javascript - 如何使用 on() 切换元素?

php - is_array for MySQL Select Statement with PHP