这看起来非常简单,但为什么这种比较会停止工作?
if (nmax < num){
nmax = num;
}
我在循环中有这个,寻找最大的数字。第一个数字是105,然后是89,然后是99.然后是一个大于99的数字。第一个数字是要测试的数字,第二个数字是当前最大数字&#39;。为什么这么破?????
101 101 VM2734:8
88 88 VM2734:8
99 99 VM2734:8
105 99 VM2734:8
756 99 VM2734:8
97 99 VM2734:8
92 99 VM2734:8
104 99 VM2734:8
98 99 VM2734:8
100 99 VM2734:8
95 99 VM2734:8
89 99 VM2734:8
96 99 VM2734:8
755 99 VM2734:8
100 99 VM2734:8
...
编辑:
这是整个代码:
var nmax = 0;
$(notams.rows().nodes()).each(function(key, id){
var num = $(id).find("td:eq(0)").html();
if (num > nmax){
nmax = num;
}
console.log(num+' '+nmax);
});
答案 0 :(得分:2)
尝试将它们包装在parseInt
中if (parseInt(nmax) < parseInt(num)){
nmax = num;
}
答案 1 :(得分:0)
尝试进行数值比较
var nmax = 0;
$(notams.rows().nodes()).each(function (key, id) {
var num = parseInt($(id).find("td:eq(0)").html().trim(), 10);
if (num > nmax) {
nmax = num;
}
console.log(num + ' ' + nmax);
});
答案 2 :(得分:0)
如果这是有问题的代码,则表示您正在比较字符串。 "99"
比"101"
更大。你必须将它们转换为数字,例如:
nmax = Number(nmax); // or parseInt(nmax)
num = Number(num); // or parseInt(num)
// ...
if (nmax < num){
nmax = num;
}
答案 3 :(得分:-2)
num有时是一个字符串。 parseInt,一切都很棒!