如何使用node.js计算最大数量?

时间:2016-07-19 22:34:03

标签: javascript node.js

在我的节点脚本中,我有以下函数,它确定最大日期:

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位数字。

确定最大数量而不是日期的正确语法是什么?

1 个答案:

答案 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
    );
}