Javascript中循环和函数的问题

时间:2013-10-28 02:51:47

标签: javascript function loops

所以我有一个任务,我现在已经做了几个小时,我非常坚持它的一些部分。因此,我所坚持的部分必须使用循环来验证放入提示中的信息,并使用数组中的信息与另一个函数中的变量一致,最后显示所有信息。

所以我已经设置了所有内容,但是如果有人会介意帮我指出正确的方向,我不知道究竟是什么问题。哦,我应该提一下,我试图让第二个函数与数组一起使用,所以当用户输入一个数字(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(

));

1 个答案:

答案 0 :(得分:1)

我认为您在numSeatsseatingChoice中都重复了相同的错误;

让我们来看看你在循环中做了什么

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) { /* .. */ }

最后,看起来您想要通过某种逻辑来计算价格,而这些逻辑并未包括在内。但是,我确信它将基于numSeatsseatingChoice,因此您需要保留对这些选择的引用。