如何在Javascript中从数组中获取每天最新的条目?

如何在Javascript中从数组中获取每天最新的条目?,javascript,arrays,node.js,date,ecmascript-6,Javascript,Arrays,Node.js,Date,Ecmascript 6,这个问题听起来可能有点奇怪,但我会解释的。 我有一个Javascript数组,它来自如下api: [ {IdLocal: 12, Date: 04-06-2020T15:25}, {IdLocal: 12, Date: 04-06-2020T10:37}, {IdLocal: 12, Date: 04-05-2020T12:30}, {IdLocal: 12, Date: 04-05-2020T13:40} {IdLocal: 13, Date: 04-0

这个问题听起来可能有点奇怪,但我会解释的。 我有一个Javascript数组,它来自如下api:

[
    {IdLocal: 12, Date: 04-06-2020T15:25},
    {IdLocal: 12, Date: 04-06-2020T10:37},
    {IdLocal: 12, Date: 04-05-2020T12:30},
    {IdLocal: 12, Date: 04-05-2020T13:40}
    {IdLocal: 13, Date: 04-06-2020T15:25},
    {IdLocal: 13, Date: 04-06-2020T10:37},
    {IdLocal: 13, Date: 04-05-2020T12:30},
    {IdLocal: 13, Date: 04-05-2020T13:40}
]
我想要的是一种方法来查找每个本地、每天的最新条目,例如:对于给定的数组,我希望得到如下响应:

[
   {IdLocal: 12, Date: 04-06-2020T15:25}, // the latest in local 12, day 06
   {IdLocal: 12, Date: 04-05-2020T13:40}, // the latest in local 12, day 05
   {IdLocal: 13, Date: 04-06-2020T15:25}, // the latest in local 13, day 06
   {IdLocal: 13, Date: 04-05-2020T13:40}  // the latest in local 13, day 05
]
正如您所看到的,我希望它只返回每天来自每个本地的最新条目

我认为,如果返回的数组变得巨大,那么在我的数组上反复迭代会非常昂贵。我知道现代Javascript有一些非常有用的数组方法,比如.map和.filter,但我对它们非常熟悉


我一直在考虑在每个IdLocal和日期上使用.map,但我不确定该怎么做。

你的意思是按属性对JSON数组排序吗

可变项目=[ {IdLocal:12,日期:04-06-2020T15:25}, {IdLocal:12,日期:04-06-2020T10:37}, {IdLocal:12,日期:04-05-2020T12:30}, {IdLocal:12,日期:04-05-2020T13:40}, {IdLocal:13,日期:04-06-2020T15:25}, {IdLocal:13,日期:04-06-2020T10:37}, {IdLocal:13,日期:04-05-2020T12:30}, {IdLocal:13,日期:04-05-2020T13:40}]; 函数SortByProperty属性{ 返回函数,b{ ifa[财产]>b[财产] 返回1; else ifa[财产]第一件事:这是一个非常奇怪的日期格式。更常见的是哪一个会使用这个:

{IdLocal:12,日期:2020-04-06T15:25}, 与此相反:

{IdLocal:12,日期:04-06-2020T15:25}, 标准格式允许您以一种自然的方式对日期进行排序和比较,并且它将更易于与其他系统进行互操作。因此,如果您可以切换到这种日期格式,代码也不会太糟糕:

const extract=items=>Object.values items.reduce a、 {IdLocal,Date,…rest}=>{ const key=IdLocal+':'+Date.0,10; 如果!输入一个| |日期>一个[key].Date{ [key]={IdLocal,Date,…rest} } 归还 }, {} const items=[{IdLocal:12,日期:'2020-04-06T15:25'},{IdLocal:12,日期:'2020-04-06T10:37'},{IdLocal:12,日期:'2020-04-05T12:30'},{IdLocal:12,日期:'2020-04-05T13:40'},{IdLocal:13,日期:'2020-04-06T15:25'},{IdLocal:13,日期:'2020-04-06T10:37'},{IdLocal:13,日期:'2020-04-05T13:30'] 日志提取项
.作为控制台包装{min height:100%!important;top:0}我认为需要一个更详细的示例。我仍然不明白你在这里要求的是哪种类型的日期排序,在每个地方说的是每日最新条目。好吧,对不起,我想这会让人困惑。。。我的英语不是最好的,但我现在努力使它更容易理解。我想现在我想过滤的东西更明显了。我从stackoverflow开始,如果我的问题在任何方面都是错误的,或者与某件事不符,只要说出来,我会尽力纠正,谢谢。一点也不,如果我写的方式让你误解了,我很抱歉。。。我做了一些编辑,现在可能更容易理解了。我真正想要的只是每天每一个本地站点的最新条目。第一天本地1的最新条目,第二天本地1的最新条目,第1天本地2的最新条目,等等。我想你必须为此编写一个函数。首先对日期进行排序,然后遍历数组,得到第一个日期,跳过其余日期,直到日期更改。非常感谢,我做了一些修改,它非常适合。我会记下.reduce的用法,你今天教了我一些非常有价值的东西: