需要一些无法解决的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;
}
}
答案 0 :(得分:0)
更好的方法是使用javascript对象分配现金范围, 而不是在如此多的开关案例中使用丑陋的代码:
例如
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
}
答案 1 :(得分:0)
我将在这里做一个疯狂的猜测,并相信可能你的一个变量实际上是携带字符串值而不是整数。尝试替换:
switch(storeLow) {
...
switch(storeHigh) {
与
switch( parseInt(storeLow, 10) ) {
...
switch( parseInt(storeHigh, 10) ) {