所以我有一个任务,我现在已经做了几个小时,我非常坚持它的一些部分。因此,我所坚持的部分必须使用循环来验证放入提示中的信息,并使用数组中的信息与另一个函数中的变量一致,最后显示所有信息。
所以我已经设置了所有内容,但是如果有人会介意帮我指出正确的方向,我不知道究竟是什么问题。哦,我应该提一下,我试图让第二个函数与数组一起使用,所以当用户输入一个数字(1到4)时,它与数组中的价格相匹配。
function numSeats() {
//var amountSeat=document.getElementById("price");
var amountSeat=prompt("Enter the amount of seats you would like");
amountSeat=parseInt(amountSeat);
for (i=7; i<amountSeat; i++){
if (amountSeat<1 || amountSeat>6) {
alert("Check the value of " + amountSeat);
location.reload(true);
}else{
alert("Thank You");}
}
return amountSeat;}
function seatingChoice() {
//var seatChoice=document.getElementById("table").innerHTML;
var seatChoice=prompt("Enter the seat location you want.");
seatChoice=parseInt(seatChoice);
for (i=7; i<seatChoice; i++){
if (seatChoice<1 || seatChoice>4) {
alert("Check what you entered for " + seatChoice);
location.reload(true);
}else{
alert("Thank You")}
}
return seatChoice;}
var price=new Array(60, 50, 40, 30);
var name=prompt("Please enter your name.");
if (name==null || name=="")
{
alert("You did not enter a name, try again");
location.reload(true);
}
else
{
alert("Thank You");
}
document.write(name + " ordered " + numSeats() + " for a total dollar amount of " + seatingChoice(
));
答案 0 :(得分:1)
我认为您在numSeats
和seatingChoice
中都重复了相同的错误;
让我们来看看你在循环中做了什么
var amountSeat = prompt("Enter the amount of seats you would like");
for (i=7; i<amountSeat.length; i++) {/* amountSeat[i] */}
prompt
要求客户端提供 String ,因此amountSeat
是 String 。amountSeat.length
是 String 中的字符数。i = 7
开始循环,因此amountSeat[i]
从7
中的amountSeat
字符开始(假设至少有7
个字符amountSeat
)在我看来,你更希望从提示中获得一个数字;
// string
var amountSeat = prompt("Enter the amount of seats you would like");
// to number
amountSeat = parseInt(amountSeat, 10); // radix of 10 for base-10 input
接下来,请考虑您的if
if (amountSeat[i]<1 && amountSeat[i]>6) {
这说if
小于1
AND 超过6 。没有数字可以同时处于这两种状态,因此它始终为false
。看起来您想要使用 OR ,||
// do your check
if (amountSeat < 1 || amountSeat > 6) { /* .. */ }
最后,看起来您想要通过某种逻辑来计算价格,而这些逻辑并未包括在内。但是,我确信它将基于numSeats
和seatingChoice
,因此您需要保留对这些选择的引用。