为什么少于不工作?
这似乎非常简单,但为什么这种比较停止工作?
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,一切都很棒!