首页 > 解决方案 > 从具有日期对象的对象数组中获取具有最旧日期的最新对象

问题描述

这是我的数组的样子

[
 { name: "myname", date: dateObj, value: 2 },
 { name: "othername", date: dateObj, value: 3 },
 { name: "newname", date: dateObj, value: 5 },
]

日期是本机日期对象。

获取日期最早的对象的最聪明方法是什么?有没有比通过循环对整个数组进行排序更好的方法?

标签: javascriptarrays

解决方案


您可以使用Array.reduce()迭代数组,并在每次迭代中选择日期最早的对象:

const data = [
 { name: "myname", date: new Date(2016, 5, 1), value: 2 },
 { name: "othername", date: new Date(2018, 6, 1), value: 3 },
 { name: "newname", date: new Date(2017, 12, 1), value: 5 },
];

const result = data.reduce((r, o) => o.date < r.date ? o : r);

console.log(result);


推荐阅读