使用变量提示的循环和函数

Loops and functions working with variable prompts

本文关键字:循环 函数 提示 变量      更新时间:2023-09-26

一直在努力实现这一点。我需要确保我的提示在询问单词时拒绝数字,在询问数字时拒绝单词。我需要使用一个循环来确保所有提示都得到回答或取消,并在任何时候取消时进行沟通。此外,我需要使用一个函数将结果写入一个表。

我尝试过使用typeofparseInt,但没有成功地让它拒绝if语句中的数字或单词。typeof总是返回一个字符串,即使我输入了一个数字或取消了。

我不知道如何使用loop来检查所有提示是否已被应答或取消,我曾考虑过使用typeof,但由于我无法更早地使其工作,我没有再次尝试。

此外,我认为typeof可以告诉用户他们是否在任何时候取消,但它总是返回一个字符串,而不是未定义的。

当我尝试在function中放入一堆包含表信息的document.write时,我无法让它打印任何内容。我只成功地使用了.getElementById.innerHTML来将变量写入表中。

    <!DOCTYPE html>
<html lang="en">
<head> 
<title></title>  
<meta charset="utf-8">
<style>
table, th, td {border: 1px solid black; text-align:center; padding: 5px;}
</style>
<script>
var firstName=prompt("What is your first name?","");
var lastName=prompt ("What is your last name?","Doe");
var age=prompt ("What is your age?","21")
var phoneNumber=prompt ("What is your phone number?","123 456 7890")
var email=prompt ("What is your email?","username@domain.com")
</script>

</head>  
<body>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
<th>Phone</th>
<th>Email</th>
</tr>
<tr>
<td id="tdFirstName"></td>
<td id="tdLastName"></td>
<td id="tdAge"></td>
<td id="tdPhoneNumber"></td>
<td id="tdEmail"></td>
</tr>
</table>
<script>
document.getElementById("tdFirstName").innerHTML = firstName;
document.getElementById("tdLastName").innerHTML = lastName;
document.getElementById("tdAge").innerHTML = age;
document.getElementById("tdPhoneNumber").innerHTML = phoneNumber;
document.getElementById("tdEmail").innerHTML =email;
</script>
</body>  
</html>  
var firstName;
do
{
    firstName=prompt("What is your first name?","");
}
while(!Number.isNaN(parseInt(firstName)));

var age;
do
{
    age=prompt("What is your age?","");
}
while(Number.isNaN(parseInt(age)));

或者这个:

var questions = [
    ["What is your name?", "string"],
    ["What is your age?", "number"]
];
for(var i = 0, j = questions.length; i < j; i++)
{
    var value, _break = false;
    for(;;)
    {
        value = prompt(questions[i][0]);
        if(value === null)
        {
            _break = true;
            break;
        }
        if(questions[i][1] == "number")
        {
            if(!Number.isNaN(parseInt(value)))
            {
                break;
            }
        }
        else if(questions[i][1] == "string")
        {
            if(Number.isNaN(parseInt(value)))
            {
                break;
            }
        }
    }
    if(_break)
    {
        break;
    }
}