我有一组时间戳记,我想将其转换为日期。
timestamps = [1568666854141, 1568595225048, 1568594645595];
timestamps.forEach(function(d) { d = new Date(d) } )
[当我在调试中执行new Date(d)
时,它给了我Mon Sep 16 2019 16:47:34 GMT-0400
很好,但是如果我检查数组,它仍然相同。它给我[1568666854141, 1568595225048, 1568594645595]
代替[Mon Sep 16 2019 16:47:34 GMT-0400, ...]
为什么不是每个元素d
都重新分配一个日期?
您正在创建一个新数组,并为每个元素创建一个新的(正确的)日期值,但不对该值做任何事情。
timestamps
创建一个新数组(而不是仅迭代using map
instead of forEach
[link to good explanation of the difference]数组]map
我这样做解决了我的问题:
forEach
forEach无法修改原始数组,请使用map:
timestamps = timestamps.map(function(d) { return new Date(d) } );