javascript - 从具有日期对象的对象数组中获取具有最旧日期的最新对象
问题描述
这是我的数组的样子
[
{ name: "myname", date: dateObj, value: 2 },
{ name: "othername", date: dateObj, value: 3 },
{ name: "newname", date: dateObj, value: 5 },
]
日期是本机日期对象。
获取日期最早的对象的最聪明方法是什么?有没有比通过循环对整个数组进行排序更好的方法?
解决方案
您可以使用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);
推荐阅读
- php - mysqli_free_result() VS mysqli_stmt_free_result() 区别和用法?
- python - Tkinter 在画布小部件中嵌入绘图,滚动条不起作用
- flutter - Flutter 将 Draggable Scrollbar 添加到 CustomScrollView?它一直给我“无法将参数类型 CustomScrollView 分配给 BoxScrollView”
- android - 如何在 Kotlin/Android 中执行简单的 HTTP 请求?
- excel - 使用 FileDialog (msoFileDialogSaveAs) 将新的 Excel 文件保存到用户指定的路径
- php - 使用 PHP 和 Laravel 从多维数组中选取值
- gemfile - 您的 Ruby 版本是 2.7.0,但您的 Gemfile 指定了 2.6.3
- javascript - 在 JavaScript 中,一旦用户提交了一个值,我如何保持输入值的打印?
- swift - 我可以将 SecondViewController 上的图像传递给 FirstViewController 吗?
- python - 如何用python模板化sql并处理sql组合问题?