2013-10-28 4 views
-1

Итак, у меня есть задание, и я делаю это сейчас несколько часов, и я очень застрял на нескольких его частях. Таким образом, части, на которые наложено приложение, должны использовать цикл для проверки информации, помещенной в подсказку, и использования информации из массива, чтобы совпадать с переменной в другой функции и, наконец, отобразить все это.Проблема с петлей и функции в Javascript

Итак, у меня есть все настроение, но я понятия не имею, что именно я ошибаюсь здесь, если кто-то не возражает помочь мне указать мне в правильном направлении? О, я должен, вероятно, упомянуть, что Im пытается получить вторую функцию, чтобы перейти с массивом, поэтому, когда пользователь вводит число (от 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

Одна из первых проблем, которые я вижу, заключается в том, что 'prompt' вернет входное значение, тогда как ваш код обрабатывает его как массив. –

+0

В реальном мире также нет значений, где 'n <1' and 'n> 6' верны для одного и того же значения * n *. – RobG

ответ

1

Похоже, вы повторяете ту же ошибку как в numSeats, так и в seatingChoice;

Давайте посмотрим на то, что вы делаете с петлей

var amountSeat = prompt("Enter the amount of seats you would like"); 
for (i=7; i<amountSeat.length; i++) {/* amountSeat[i] */} 
  • prompt спрашивает клиента для строки, так amountSeat является Строка.
  • amountSeat.length является, таким образом, числом символов в Строка.
  • Вы начинаете свой цикл в 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Иболее 6. В то же время ни один из этих номеров не может быть оба из этих состояний, поэтому он всегда будет false. Похоже, что вы хотите использовать ИЛИ, ||

// do your check 
if (amountSeat < 1 || amountSeat > 6) { /* .. */ } 

Наконец, это выглядит, как вы хотите, чтобы рассчитать цену на какой-то логикой, которую вы не включили. Тем не менее, я уверен, что он будет основан на numSeats и seatingChoice, поэтому вам нужно будет оставить ссылку на эти варианты.

+0

Вау, я смотрел на свой код как на час и не понимал, что у меня было так много простых ошибок, как и вместо, или в IF, и забыв, что приглашение появляется как строка. Спасибо за помощь, хотя я вернусь назад и использую ваши комментарии и посмотрю, смогу ли я заставить все работать. – user2926583

+0

Итак, я обновил код с некоторыми вещами, которые мне не хватало, но я должен задать еще один вопрос, если все в порядке, мне все же нужен способ получить информацию из массива и использовать его в коде seatChoice. Так что в основном способ взять цены из массива и совместить их с выбором, который пользователь делает для мест. В противном случае спасибо за помощь, которую он очень ценит! – user2926583

Смежные вопросы