在我的node.js应用程序中,我有以下对象数组,其中包含一个名为REPORTEDDATE的日期字段:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click on a blue square to mark its vertexes</p>
<div id="transformed">
<div id='nested'>
<div class="target">
</div>
<div class="target">
</div>
<div class="target">
</div>
<div class="target">
</div>
</div>
有没有办法确定这些对象的REPORTEDDATE字段的最大日期? 我知道 - 更好的询问方式是描述我的尝试,但是,用这种格式,我真的不知道从哪里开始......
答案 0 :(得分:3)
您可以使用map
,reduce
,Math.max
和Date.parse()
轻松完成。
var maxDate = new Date(arr.map(o => Date.parse(o.REPORTEDDATE))
.reduce((a, b) => Math.max(a, b)))
.toUTCString();
答案 1 :(得分:0)
假设REPORTEDDATE
是实际的Date
实例而不是字符串,请使用 reduce 操作
let maxDate = new Date(arrayOfObjects.reduce(
(currentMaxDate, obj) => Math.max(currentMaxDate, obj.REPORTEDDATE), 0));
注意,Math.max()
会将日期视为通过Date.prototype.valueOf()
的数字,并返回日期的时间戳。这就是reduce操作的输出包含在new Date()
。
答案 2 :(得分:0)
您可以使用Date类将字符串中的日期解析为可以在循环中进行比较的内容,以找到最大值,例如:
var timestamp = new Date(array[0].REPORTEDDATE).getTime();
根据系统上Date类的实现,您可能会发现需要使用字符串来使其正确解析或者您可能需要使用外部库或编写代码来获取日期,月份,分钟,小时,秒等,并从那些构造一个Date对象。