Javascript вложенный оператор switch внутри оператора if else - PullRequest
0 голосов
/ 29 сентября 2011

Нужна помощь со следующей проблемой javascript, которая не будет решена.Я новичок и делаю все возможное, чтобы найти хорошее решение, чтобы я мог завершить исследование диссертации.Код разработан для запуска в программе онлайн-опросов под названием Qualtrics.Каждая переменная представляет данные из ответов на вопросы.Я проверил их, и они отлично работают.

Один из переключателей работает нормально вне оператора if-else.Тем не менее, в сочетании все не работает.

Любая помощь очень ценится.

var storeLow = ${q://QID83/ChoiceGroup/SelectedChoices};
var storeHigh = ${q://QID82/ChoiceGroup/SelectedChoices};
var cash = 0;
if(storeLow >= 1)
{
 switch(storeLow) {
  case 5: 
  cash = 200; 
  break;

  case 3:
  case 6:
  case 11:
  case 12:
  cash = 150;
  break;

  case 1:
  case 2:
  case 4:
  case 7:
  case 8:
  case 9:
  case 10:
  case 13:
  case 14:
  case 15:
  case 16:
  cash = 100;
  break;

  default:
  cash = 50;
  break;
 }
} else {
 switch(storeHigh) {
  case 3:
  cash = 200;
  break;

  case 6:
  case 10:
  case 11:
  case 15:
  cash = 150;
  break;

  case 1:
  case 2:
  case 4:
  case 5:
  case 7:
  case 8:
  case 9:
  case 12:
  case 13:
  case 14:
  case 16:
  cash = 100;
  break;

  default:
  cash = 50;
  break;
 }
}

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

Я собираюсь сделать дикое предположение здесь и поверить, что, возможно, одна из ваших переменных на самом деле несет строковые значения вместо целых чисел.Попробуйте заменить:

switch(storeLow) {

...

switch(storeHigh) {

на

switch( parseInt(storeLow, 10) ) {

...

switch( parseInt(storeHigh, 10) ) {
0 голосов
/ 29 сентября 2011

Лучшим подходом будет использование объекта javascript для назначения диапазонов Cash, вместо использования некрасивого кода с таким количеством вариантов переключения:

например.

var myCashCriteria = { '15': 100 , '16' : 100, '17' : 100,'5' : 200 }
var myCash = getCash(16);


function getCash(num)
{
   var numKey = num + '';   // convert num to string
   if(myCashCriteria[numKey])
           return myCashCriteria[numKey];
   else
           return 0 ;   // default value
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...