我正在使用 jquery.grep 来清理字符串并仅返回数字。
这是我的:
var TheInputArray = TheInput.slice();
var TheCleanInput = jQuery.grep(TheInputArray, function (a) {
return parseInt(a, 10);
});
我将一个字符串拆分成一个数组,然后使用 parseInt 函数检查它是否是一个数字。问题是当 a 的值为 0 时,它会跳过该元素。我需要做哪些更改才能使此代码正常工作?
谢谢。
最佳答案
不幸的是,Javascript 中的 0
是假的。因此,您需要确保返回值为 true
,即使是 0
。
var TheInputArray = TheInput.slice();
var TheCleanInput = jQuery.grep(TheInputArray, function (a) {
return ! isNaN(parseInt(a, 10));
});
parseInt
如果未能解析输入,则返回 NaN
(不是数字)。如果参数是 NaN
,isNan()
将返回 true
。所以这应该可以帮助您发现这种情况。
关于当值 = 0 时,javascript parseInt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160304/