当前位置: 首页 > 知识库问答 >
问题:

如何在Javascript中查找具有键值的数组中的最新日期[重复]

安毅
2023-03-14

在这个文件数组中,我必须找到最近创建的文件。我是否必须更改日期的格式,或者函数是否可以按原样使用它?

js prettyprint-override">let  files = [
  {
    name: 'untitled',
     created_at: '2015-02-03T09:43:03Z'
   },
  {
    name: 'ruby files',
     created_at: '2014-04-16T22:13:29Z'
   },
  {
    name: 'documents',
     created_at: '2016-05-09T09:39:24Z'
   }
]

共有2个答案

陆卓
2023-03-14

这样做:

files.sort(function(a,b){
    return new Date(b.created_at) - new Date(a.created_at);
});
谢选
2023-03-14

您的日期采用的格式将按字典顺序排序,这意味着您不需要花费资源创建新的日期对象来查找最大的日期对象。您也不需要对列表进行排序,您可以通过循环reduce()查找单个过程中最新的列表,这更有效:

let  files = [{name: 'untitled',created_at: '2015-02-03T09:43:03Z'},{name: 'ruby files',created_at: '2014-04-16T22:13:29Z'},{name: 'documents',created_at: '2016-05-09T09:39:24Z'}]

let most_recent = files.reduce((mostRecent, item) =>
   item.created_at > mostRecent.created_at 
   ? item
   : mostRecent
)
console.log(most_recent)
 类似资料:
  • 我很难理解下面的代码是如何在字典中找到最大值的键的。我知道第一个参数返回键列表。但我没有得到第二个参数..帮帮我

  • 问题内容: 我正在处理一个查询,其中需要查看患者去诊所时输入的患者生命体征(特别是血压)。我将获得2015年全年的结果,当然,某些患者曾多次就诊,我只需要查看最近一次就诊时输入的生命指标即可。另一个轻微的变化是收缩压和舒张压是分别输入的,因此我得到如下结果: 有26,000多个结果,因此显然我不想遍历每位患者并查看他们的最新结果是什么时候。我希望我的结果看起来像这样: 我知道出生的名字和日期,以后

  • 我想分别找到数组数组中每个数组的第一个和第二个元素的最大数量: 当前方式返回每个数组中最大数的数组。如何返回第一个元素中最大的元素和第二个元素中最大的元素?预期结果将是:

  • 问题内容: 我需要返回最大的负值,如果没有负值,则需要返回零。这是我所拥有的: 问题答案: 您只需要考虑以下两个步骤即可解决此问题: 只考虑list []中的负值。 在负值范围内的循环中,如果(结果== 0)或(值>结果)更新当前结果。 码:

  • 我的怀疑是因为这个问题: https://www.hackerrank.com/challenges/migratory-birds/problem?h_r=next-挑战 我知道可以通过以下方式轻松解决: > 将频率存储在Map中 初始化两个温度变量a、b 启动循环 输入arr包含11个值,1 2 2 2 3 4 5 4 3 4 输出应该是2 说明1 不同类型的鸟类以以下频率出现: 类型1:1

  • 问题内容: 我在Java中有三个约会:a,b,c。这些日期中的任何一个或所有日期都可以为空。在没有大量if- else块的情况下确定a,b,c中最早日期的最有效方法是什么? 问题答案: 无法避免空值检查,但是通过一些重构,您可以使其变得更轻松。 创建一个安全地比较两个日期的方法: 然后结合调用: 实际上,您可以将此方法用作任何通用方法: