Javascript 不工作范围的Switch语句
我使用javascript中的开关盒来查找范围,但它不起作用。我做错什么了吗Javascript 不工作范围的Switch语句,javascript,switch-statement,Javascript,Switch Statement,我使用javascript中的开关盒来查找范围,但它不起作用。我做错什么了吗 function mapPriceRange(value){ var range = ''; switch(value) { case (value >= 0 && value <= 25): range = '0_25'; break; case (value >= 25 &
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));
函数映射价格范围(值){
var范围=“”;
开关(值)
{
案例(值>=0&&value=25&&value=40&&value=60&&value=100&&value=150&&value=200&&value=300&&value=500&&value使用以下代码
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));
功能检查范围(x,n,m){
如果(x>=n&&x只需将switch(value)
替换为switch(true)
,它应该可以工作。请参阅。仅使用字符串在Javascript中切换大小写。它们会在比较之前将开关中或大小写中收到的任何输入强制为字符串。因此,您的值.toString()
与各种情况下的“true”和“false”字符串进行比较,每种情况下都返回false
使用ifElse
梯形图是解决此问题的最佳方法,并参考任何其他答案以了解可能的解决方法,该方法依赖于返回value.toString()
或切换“true”
而不是值
如果您的范围重叠,您需要使用if-elseIt。根据此逻辑值,200将落入[150200],但它也在[200300]范围内。是的,谢谢,我将使用if-else
并修复我的问题ranges@ntechi检查我的答案