Назначение весовой категории бокса - PullRequest
0 голосов
/ 06 декабря 2011

У меня проблемы с JavaScript, который я написал. Предполагается, что этот скрипт запрашивает у пользователя вес от 0 до 126, а затем появляется всплывающее окно с описанием веса, в котором он находится.

weight class      from    to
-------------------------------
Fly               0     112
SuperFly          112   115
Bantam            115   118
SuperBantam       118   122
Feather           122   126
<script type="text/javascript">
  var weight = parseInt(prompt("What is your weight?"));
  if (weight > 126) {
    alert('Please enter a weight lighter than 126');
  }
  document.writeln('<br/>');
  var wArray = String ([fly,superfly,bantam,superbantam,feather]);

  function recruit() {
    if (0 < weight < 112){
      document.writeln('You are in' + wArray[0] +'class!');
    }
    if (112 < weight < 115){
     document.writeln('You are in' + wArray[1] +'class!');
    }
    if (115 < weight < 118){
      document.writeln('You are in' + wArray[2] +'class!');
    }
    if (118 < weight < 122){
      document.writeln('You are in' + wArray[3] +'class!');
    }
    if (122 < weight 126){
      document.writeln('Your weight class is' + wArray[4]);
    }

</script>

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Изменить это

var wArray = String ([fly,superfly,bantam,superbantam,feather]);

к этому

var wArray = ["fly", "superfly", "bantam", "superbantam", "feather"];

Все массивы в JavaScript типизируются динамически. Нет способа создать массив строк; Вы просто создаете массив и заполняете его строками.

Кроме того,

if (115 < weight < 118)

недействительно. Вы хотите

if (weight > 115 && weight < 118)
1 голос
/ 06 декабря 2011

Вот первый шаг при переписывании вашего кода:

var weight = prompt("What is your weight?") * 1;
if (weight>126){
  alert('Please enter a weight lighter than 126');
}else if (weight > 122){
  alert('You are in' + wArray[4] +'class!');
}else if (weight > 118){
  alert('You are in' + wArray[3] +'class!');
}else if (weight > 115){
  alert('You are in' + wArray[2] +'class!');
}else if (weight > 112){
  alert('You are in' + wArray[1] +'class!');
}else{
  alert('You are in' + wArray[0] +'class!');
}

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

Подсказка: что об этом

var classes = [
  { min:123, max:126, name:'fly'      },
  { min:119, max:122, name:'superfly' },
  // etc.
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...