我有这段代码:
if(data > 100) {
if(data <= 1000) {
otherValue = 10;
} else if (data > 1000 && data <=2000) {
otherValue = 20;
} else if (data > 2000 && data <=3000) {
otherValue = 30;
}
......
......
}
我不能继续这样做,直到,让我们说,20k。那太可怕了。而且我似乎无法找到最佳的代码解决方案。
答案 0 :(得分:6)
您尚未明确定义您的要求,但似乎这应该有效。
var data = 14281;
var otherValue;
if(data > 100) {
otherValue = 10 * Math.ceil(data / 1000);
}
console.log(otherValue);
答案 1 :(得分:2)
首先,您永远不需要重复您之前测试已经排除的测试。在您的代码中,这是>
语句中的所有else if
测试,您可以将其删除:
if(data > 100) {
if(data <= 1000) {
otherValue = 10;
} else if ( /* data > 1000 && */ data <=2000) {
otherValue = 20;
} else if ( /* data > 2000 && */ data <=3000) {
otherValue = 30;
}
......
......
}
接下来,您在otherValue
时将data <= 100
设置为什么?我没有看到任何代码来处理这种情况。
最后,忽略data <= 100
案例,如果if
语句的模式在示例中每1000次继续,则可以使用Math.floor()
或Math.ceil()
来计算otherValue
1}}如JLRishe's answer所示。请务必单独处理任何不适合该模式的案例,例如data <= 100
。
答案 2 :(得分:1)
条件可以更简单的方式设计:
$sudo service mongodb stop
如果你想让它更简单,那么这样呢?
if(data <= 1000) {
...
} else if (data > 1000 /*Here data have to be > 1000, bacause of else branch.*/&& ... ) {
...
}