范围的Switch语句不起作用
Switch statement for a range not working
我在javascript中使用开关用例来查找范围,但它不起作用。我做错什么了吗?
function mapPriceRange(value){
var range = '';
switch(value)
{
case (value >= 0 && value <= 25):
range = '0_25';
break;
case (value >= 25 && value <= 40):
range = '25_40';
break;
case (value >= 40 && value <= 60):
range = '40_60';
break;
case (value >= 60 && value <= 100):
range = '60_100';
break;
case (value >= 100 && value <= 150):
range = '100_150';
break;
case (value >= 150 && value <= 200):
range = '150_200';
break;
case (value >= 200 && value <= 300):
range = '200_300';
break;
case (value >= 300 && value <= 500):
range = '300_500';
break;
case (value >= 500 && value <= 1000):
range = '500_1000';
}
return range;
}
console.log(mapPriceRange(500));
我总是得到一根空绳子。
只需将switch(value)
替换为switch(true)
就可以了。请参见jsFiddle。
使用以下代码
function checkRange(x, n, m) {
if (x >= n && x <= m) { return x; }
else { return !x; }
}
var x = 5;
function mapPriceRange(value){
var range = '';
switch(value)
{
case checkRange(x, 0, 25):
range = '0_25';
break;
case checkRange(x, 25, 40):
range = '25_40';
break;
case checkRange(x, 40, 60):
range = '40_60';
break;
case checkRange(x, 60, 100):
range = '60_100';
break;
case checkRange(x, 100, 150):
range = '100_150';
break;
case checkRange(x, 150, 200):
range = '150_200';
break;
case checkRange(x, 200, 300):
range = '200_300';
break;
case checkRange(x, 300, 500):
range = '300_500';
break;
case checkRange(x, 500, 1000):
range = '500_1000';
}
return range;
}
console.log(mapPriceRange(500));
在Javascript中只切换带有字符串的用例。它们在比较switch
或case
中接收到的任何输入之前,都会将其强制为字符串。因此,在各种情况下,您的value.toString()
会与"true"answers"false"字符串进行比较,在任何情况下都会返回false
。
使用ifElse
梯形图是绕过它的最佳方法,请参阅任何其他答案以获得可能的解决方法,该解决方法依赖于返回value.toString()
或切换到"true"
而不是value
。
相关文章:
- Javascript:If-then语句在函数中不起作用
- 循环通过数组的If语句不起作用
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 清除函数中if语句内部不起作用的间隔
- 为什么简单的Promise语句在浏览器中不起作用
- 如果语句不起作用,请单击
- 三元语句不起作用
- Javascript if和else语句不起作用
- PHP代码中实现的JavaScript |if语句不起作用
- if 语句在 JavaScript 上不起作用
- 如果语句不起作用 - JavaScript
- .has() 函数在 if 语句 (jQuery) 中不起作用
- 如果 onclick 和 onselect 中的语句在 ASP.NET 不起作用
- 简单的JS计算器-为什么不是'这个if语句不起作用
- alert语句不起作用
- SELECT FROM WHERE语句在使用变量时不起作用…
- 如果语句由于某种原因不起作用
- Javascript验证不起作用——只要一个if语句为true,它就会停止所有if语句
- 范围的Switch语句不起作用
- Javascript If语句,不起作用