javascript - 从日期属性中具有最新值的数组中获取对象?
问题描述
我想从日期属性中具有最新/最大值的数组中获取对象。有没有很好的方法来做到这一点?
[
{
"Address": 25,
"AlertType": 1,
"Area": "North",
"Date": "2019-02-01T00:01:01.001Z",
"Value": -1
},
{
"Address": 26,
"AlertType": 1,
"Area": "West",
"Date": "2016-04-12T15:13:11.733Z",
"Value": -1
},
{
"Address": 25,
"AlertType": 1,
"Area": "North",
"Date": "2017-02-01T00:01:01.001Z",
"Value": -1
}
.
.
.
]
解决方案
使用减少 (O(n)):
var data = [{ "Address": 25, "AlertType": 1, "Area": "North", "Date": "2019-02-01T00:01:01.001Z", "Value": -1 }, { "Address": 26, "AlertType": 1, "Area": "West", "Date": "2016-04-12T15:13:11.733Z", "Value": -1 }, { "Address": 25, "AlertType": 1, "Area": "North", "Date": "2017-02-01T00:01:01.001Z", "Value": -1 }]
console.log(
data.reduce((a,b)=>new Date(a.Date).getTime() > new Date(b.Date).getTime()? a : b, {})
)
排序(O(n log n)):
var data = [{ "Address": 25, "AlertType": 1, "Area": "North", "Date": "2019-02-01T00:01:01.001Z", "Value": -1 }, { "Address": 26, "AlertType": 1, "Area": "West", "Date": "2016-04-12T15:13:11.733Z", "Value": -1 }, { "Address": 25, "AlertType": 1, "Area": "North", "Date": "2017-02-01T00:01:01.001Z", "Value": -1 }]
console.log(
data.sort((a,b)=>new Date(b.Date).getTime() - new Date(a.Date).getTime())[0]
)
推荐阅读
- reactjs - Kendo UI 反应树视图向每个节点添加操作按钮
- validation - 如何为相同的必需属性 C# MVC Razor 创建两个单选按钮
- elasticsearch - 从 Elasticsearch 令牌中删除数字
- javascript - 无法阻止被动事件中的默认值
- java - 当我尝试使用调试器时出现scanner.java选项卡
- reactjs - 有条件地渲染样式组件和 SVG 图标的简单方法
- mysql - 错误 1052 我正在尝试使用内部连接来连接表,但是我不断收到此消息
- video - 裁剪,使用 ffmpeg 重新排列视频帧的中间
- r - pscl:zeroinfl 的方差分析表
- swift - 为 UIKeyboard 推送 UIViews