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