为什么少于不工作?

时间:2014-12-10 02:51:33

标签: javascript jquery

这看起来非常简单,但为什么这种比较会停止工作?

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);
    });

4 个答案:

答案 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,一切都很棒!