从客户端对象数组中获取最新日期的优雅方法是什么?
我在项目中使用angularjs。
我从服务器获取对象数组。每个对象包含少量属性,其中之一是date属性。
这是我从服务器获得的数组(在json中):
[ {
"Address": 25,
"AlertType": 1,
"Area": "North",
"MeasureDate": "2019-02-01T00:01:01.001Z",
"MeasureValue": -1
},
{
"Address": 26,
"AlertType": 1,
"Area": "West",
"MeasureDate": "2016-04-12T15:13:11.733Z",
"MeasureValue": -1
},
{
"Address": 25,
"AlertType": 1,
"Area": "North",
"MeasureDate": "2017-02-01T00:01:01.001Z",
"MeasureValue": -1
}
.
.
.
]
我需要从数组中获取最新日期。
从对象数组获取最新日期的优雅方法是什么?
回答:
一种干净的方法是将每个日期转换为a Date()
并采用最大值
new Date(Math.max.apply(null, a.map(function(e) { return new Date(e.MeasureDate);
})));
a
对象数组在哪里。
这样做是将数组中的每个对象映射到使用值创建的日期MeasureDate
。然后,将此映射数组应用于Math.max
函数以获取最新日期,并将结果转换为日期。
通过将字符串日期映射到JS Date对象,您最终会使用诸如数组中日期的Min /Max之)类的解决方案吗?
-
不太干净的解决方案是简单地将对象映射到的值MeasureDate
并对字符串数组进行排序。这仅适用于您所使用的特定日期格式。
a.map(function(e) { return e.MeasureDate; }).sort().reverse()[0]
如果需要考虑性能,则可能希望reduce
使数组获得最大值而不是使用sort
and reverse
。
以上是 从客户端对象数组中获取最新日期的优雅方法是什么? 的全部内容, 来源链接: utcz.com/qa/401252.html