javascript parseInt 当 value = 0

fre*_*hie 4 javascript jquery

我正在使用 jquery.grep 来清理一个字符串并只返回数字。

这就是我所拥有的:

var TheInputArray = TheInput.slice();
var TheCleanInput = jQuery.grep(TheInputArray, function (a) {
  return parseInt(a, 10);
});
Run Code Online (Sandbox Code Playgroud)

我取一个字符串,将其拆分为一个数组并使用 parseInt 函数检查它是否是一个数字。问题是当 a 的值为 0 时,它会跳过该元素。我需要做哪些更改才能使此代码正常工作?

谢谢。

Ale*_*yne 5

不幸的是,0在 Javascript 中是假的。因此,您需要确保您的返回值是true,即使对于0.

var TheInputArray = TheInput.slice();
var TheCleanInput = jQuery.grep(TheInputArray, function (a) {
  return ! isNaN(parseInt(a, 10));
});
Run Code Online (Sandbox Code Playgroud)

parseIntNaN如果无法解析输入,则返回(不是数字)。如果参数为,isNan()则返回。所以这应该可以帮助您检测这种情况。trueNaN