使用 parseInt 函数时出现 NaN 错误

问题描述 投票:0回答:2

当我将 parseInt 与日期字符串一起使用时,出现 Nan 错误。 我以字符串形式获取 FinalRelease 和 Original Release 值。我正在分割该值并尝试使用索引进行访问。如果是最后一个月,我会得到正确的月份,但如果是原始月份,它会显示南。

finalRelease = "2017-07-20"
originalRelease = "2017-08-09"
if(finalRelease!=null && originalRelease!=null)  {
      var finalDate = finalRelease.split('-');
      var originalDate = originalRelease.split('-');
      var finalMonth = parseInt(finalDate[1])-1;
      var originalMonth = parseInt(originalDate[1])-1;
google-apps-script numbers
2个回答
3
投票

确实,

parseInt("08")
在 Google Apps 脚本中返回 NaN。这是因为 GAS 作为旧版本的 JavaScript,将前导 0 视为八进制整数的符号。补救措施很简单:

始终在 parseInt 中包含基数(通常为 10)。

用途:

parseInt("08", 10): 
parseInt(originalDate[1], 10) - 1;

请勿使用:

parseInt("08"): 
parseInt(originalDate[1]) - 1;

0
投票

这是另一个使用

Number
构造函数的较短方法:

var num = Number("08"); // 8.0
© www.soinside.com 2019 - 2024. All rights reserved.