根据日期和唯一ID过滤数组

时间:2019-11-19 23:07:21

标签: javascript

我有一个遵循以下格式的数组:

[{"id":1,"date":"2019-09-05T00:00:00.000"},{"id":1,"date":"2019-06-05T00:00:00.000"},
  {"id":2,"date":"2019-07-05T00:00:00.000"},{"id":2,"date":"2019-04-05T00:00:00.000"}]

我想要过滤此数组,以便对于每个id,我都能获得最新的日期值。

因此在给定的示例中,我想返回:

[{"id":1,"date":"2019-09-05T00:00:00.000"},{"id":2,"date"="2019-07-05T00:00:00.000"}]

1 个答案:

答案 0 :(得分:1)

  1. 创建一个空对象{},其键将是ID的
  2. 遍历数组
  3. 对于数组中的每个对象
    1. 如果日期对象的ID已经是您刚创建的对象的键之一,则比较日期,如果日期较大则替换该对象
    2. 否则,请创建一个具有ID的密钥并添加日期

然后您将拥有一个类似的对象:

{
  "id1" : "<biggest date having this id>",
  "id2" : "<biggest date having this id>",
  ...
}
  1. 然后尝试做一些事情以拥有一个数组