Node.JS/Javascript - 将字符串转换为整数,在我不期望它时返回NaN

Pin*_*ade 11 javascript string casting node.js

这都是在一个更大的程序的背景下,所以我将尝试保持简单,只显示有问题的行.我有一个数组值,字符串形式的数字为"84","32"等.

然而这条线

console.log(unsolved.length + " " + unsolved[0] + " " + parseInt(unsolved[0]) + " " + parseInt("84"));
Run Code Online (Sandbox Code Playgroud)

打印:

4 "84" NaN 84
Run Code Online (Sandbox Code Playgroud)

"84"是我试图解析的数组元素!然而,除非我将它从数组的上下文中删除并明确地编写它,否则它将无法工作.这是怎么回事?

Ale*_*x W 11

您可以尝试使用此函数从要处理的字符串中删除引号:

function stripAlphaChars(source) { 
  var out = source.replace(/[^0-9]/g, ''); 

  return out; 
}
Run Code Online (Sandbox Code Playgroud)

您还应明确指定要解析基数为10的数字:

parseInt(unsolved[0], 10);
Run Code Online (Sandbox Code Playgroud)


lan*_*nzz 7

parseInt将从其参数的开头看起来像一个数字,并忽略其余的一切.在你的情况下,你调用它的参数开头",所以没有任何东西看起来像一个数字,它试图转换一个空字符串,这实际上不是一个数字.