【发布时间】:2020-01-17 08:03:03
【问题描述】:
我有一个数组,其中包含一堆对象和一些键/值对 + 时间戳(moment.js 格式的时间戳)。 我总共有 12 个月的许多时间戳,需要获取每个月的最后一个时间戳并删除其他对象。
其实我什至不知道如何开始。 我已经使用 _.sortBy 按日期对数组进行排序,但不知道如何继续。
array1 = [
{name:name1,timestamp:2018-09-15T07:00:00.0},
{name:name2,timestamp:2018-09-15T12:00:00.0},
{name:name3,timestamp:2018-09-28T05:00:00.0},
{name:name4,timestamp:2018-09-30T01:00:00.0},
{name:name5,timestamp:2018-10-02T10:00:00.0},
{name:name6,timestamp:2018-10-02T11:00:00.0},
{name:name7,timestamp:2018-10-15T07:00:00.0},
{name:name8,timestamp:2018-12-05T08:00:00.0},
{name:name9,timestamp:2018-12-05T09:00:00.0},
{name:name10,timestamp:2018-12-05T10:00:00.0}
]
预期结果是
array1 = [
{name:name4,timestamp:2018-09-30T01:00:00.0},
{name:name7,timestamp:2018-10-15T07:00:00.0},
{name:name10,timestamp:2018-12-05T10:00:00.0}
]
【问题讨论】:
-
您希望最后一个时间戳基于它们在数组中的显示顺序,还是基于具有该月最新时间戳的条目?例如:如果数组中的最后两个条目切换了时间戳值,您仍然会在结果集中期望
name10,还是期望name9?如果您只关心“最后一个基于顺序”@Taki 答案是一个很好的解决方案。如果您希望数组中的值是随机的,并且您希望“基于时间戳的每个月的最后一个条目”它将不起作用。 -
@dusthaines 我想要基于时间戳的最后一个条目。 Taki 的回答很好,但我使用 .map 来创建我需要的数组,然后减少然后再次推送以将条目推送到新数组中以摆脱月份对象本身。
标签: javascript arrays sorting momentjs