在我的 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/