为什么少于不工作?

这似乎非常简单,但为什么这种比较停止工作?

if (nmax < num){ nmax = num; } 

我在循环中有这个,寻找最大的数字。 第一个数字是105,然后是89,然后是99.然后是一个大于99的数字。第一个数字是要测试的数字,第二个数字是“当前最大数字”。 为什么这么破?

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

尝试将它们包装在parseInt中

 if (parseInt(nmax) < parseInt(num)){ nmax = num; } 

尝试做数值比较

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

如果这是有问题的代码,则意味着您正在比较字符串。 "99"大于"101" 。 你必须将它们转换为数字,例如:

 nmax = Number(nmax); // or parseInt(nmax) num = Number(num); // or parseInt(num) // ... if (nmax < num){ nmax = num; } 

num有时是一个字符串。 parseInt,一切都很棒!