在我的节点脚本中,我有以下函数,它确定最大日期:
if (result.rows.length > 0) {
var maxDate = new Date(
result.rows.map(o => o.REPORTED_DATE).reduce(function(a, b) {
return Math.max(a, Date.parse(b));
})
);
}
REPORTED_DATE
曾经是一个日期,但现在更改为unix纪元,这是一个10位数字。
确定最大数量而不是日期的正确语法是什么?
答案 0 :(得分:1)
如果REPORTED_DATE
现在是一个号码,那么您应该只需删除现有Date.parse()
功能中的.reduce()
来电:
return Math.max(a, b);
但是,鉴于Math.max()
可以处理任意数量的参数,您不需要使用.reduce()
,而只需使用.apply()
传递Math.max()
数组您使用.map()
生成的数字:
Math.max.apply(null, result.rows.map(o => o.REPORTED_DATE))
如果REPORTED_DATE
是一个Unix风格的10位数字,那就是秒数,所以你需要将它加倍1000才能获得转换为JavaScript Date
对象的毫秒数。所以把它放在上下文中:
if (result.rows.length > 0) {
var maxDate = new Date(
Math.max.apply(null, result.rows.map(o => o.REPORTED_DATE)) * 1000
);
}