我有一段javascript表现得非常奇怪。它应该是基于整数过滤项目。
在它应该过滤的4个范围中的3个中效果很好,但在最大的范围内失败。
代码:
if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime)
...
}
在奇怪的行为范围内,它会记录:
120 <= 40 && 9000 > 40
为什么?
答案 0 :(得分:2)
看起来,你使用的是字符串而不是数字。
var range_low = '120',
range_high = '9000',
itemLeadtime = '40';
if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime);
}
带数字
var range_low = 120,
range_high = 9000,
itemLeadtime = 40;
if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime);
} else {
console.log('else');
}