-3

需要一些帮助来解决以下无法解决的 javascript 问题。我是一个新手,并尽我所能找到一个好的解决方案,以便我可以完成我的论文研究。该代码旨在在名为 Qualtrics 的在线调查程序中运行。每个 var 代表来自问题响应的数据。我已经测试了这些,它们工作正常。

其中一个开关在 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;
 }
}
4

2 回答 2

0

更好的方法是使用 javascript 对象来分配 Cash 范围,而不是使用带有这么多 switch 案例的丑陋代码:

例如。

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
}
于 2011-09-29T09:23:34.510 回答
0

我将在这里进行大胆的猜测,并相信您的一个变量实际上可能携带的是字符串值而不是整数。尝试替换:

switch(storeLow) {

...

switch(storeHigh) {

switch( parseInt(storeLow, 10) ) {

...

switch( parseInt(storeHigh, 10) ) {
于 2011-09-29T09:38:01.220 回答