javascript - .split 通过将字符串转换为数组返回 NaN

标签 javascript arrays string split

我需要将包含多个日期的字符串转换为数组。 只要字符串包含数字,这种方法就可以正常工作。 包含日期信息的字符串如下所示:

 Wed Nov 01 2017 13:06:56 GMT+0100 (CET),Wed Nov 01 2017 13:07:10 GMT+0100 (CET),Wed Nov 01 2017 13:07:12 GMT+0100 (CET),Wed Nov 01 2017 13:07:13 GMT+0100 (CET),Wed Nov 01 2017 13:07:15 GMT+0100 (CET),Wed Nov 01 2017 13:07:16 GMT+0100 (CET)

我的代码如下所示:

var times = string.split(",").map(Number);
console.log(times[0]);

不幸的是,这会导致:

NaN

我无法解释为什么它不起作用。即使我更换

","

"GMT+"

它仍然无法工作。提前感谢您的帮助!

最佳答案

分割字符串正在正常工作。

问题在于,通过调用 .map(Number),您试图将数组的每个元素传递给 Number 构造函数。这将返回 NaN,因为字符串无法直接转换为数字。

例如:

new Number('Wed Nov 01 2017 13:06:56 GMT+0100 (CET)'); // NaN

您可能想要的是.map(Date.parse),因为Date.parse函数可以处理这种格式的字符串。结果将是“代表自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的毫秒数”( MDN )

关于javascript - .split 通过将字符串转换为数组返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085903/

相关文章:

javascript - 对于每个 xslt 仅查看第一项

javascript - 如果选中另一个复选框,则选中复选框

javascript - 使用环绕在一维阵列网格中查找邻居的更优雅的方法?

python - python中数组的导数?

java - 哪种是存储关注者和关注者最有效的数据结构

javascript - 使用 laravel 路由链接中的按钮删除产品

PHP:从字符串末尾获取第n个字符

java - 如何解决不可变的 String[]

Java 字符串函数

javascript - 如何将音频 blob 从 javascript 发送到 java spring 服务器?