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

标签 javascript node.js

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

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

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

最佳答案

如果 REPORTED_DATE 现在是一个数字,那么您应该能够简单地删除现有 .reduce() 中的 Date.parse() 调用功能:

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 的毫秒数日期对象。因此,将其放在上下文中:

if (result.rows.length > 0) {
    var maxDate = new Date(
        Math.max.apply(null, result.rows.map(o => o.REPORTED_DATE)) * 1000
    );
}

关于javascript - 如何使用node.js计算最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469581/

相关文章:

javascript - 将 mysql 查询的 json 结果作为参数传递给 Node/express 中的 ejs

node.js - 从AWS SAM中的 Node 应用程序连接到docker中的mongodb

javascript - textarea 属性值更改时触发过程

javascript - 动态设置模板文件中隐藏字段的id

javascript - 在 CSS 中调用 JavaScript 函数

javascript - 两个 Backbone.Router 定义之间的差异

node.js DIGEST-MD5计算: calculate 16 octect MD5 hash

node.js - 为 Node 包 Noble 制作配方

node.js - 自耕农发电机;这些错误是什么意思?

javascript - 如何在javascript中制作声音文件?