Javascript 根据年份筛选日期列表中的最新日期
必须在日期数组中筛选日期,其中日期应包括一年中的最新日期Javascript 根据年份筛选日期列表中的最新日期,javascript,arrays,json,Javascript,Arrays,Json,必须在日期数组中筛选日期,其中日期应包括一年中的最新日期 data = [ "2017-06-14", "2017-06-30", "2017-09-29", "2017-12-29", "2018-03-29", "2018-06-29", "2018-09-28", "2018-12-31", "2019-03-29", "2019-06-28" ] 期望 data = ["2017-12-29","2018-12-31","2019-06-28"]
data = [
"2017-06-14",
"2017-06-30",
"2017-09-29",
"2017-12-29",
"2018-03-29",
"2018-06-29",
"2018-09-28",
"2018-12-31",
"2019-03-29",
"2019-06-28"
]
期望
data = ["2017-12-29","2018-12-31","2019-06-28"]
请始终发布您的尝试,而不仅仅是预期的结果,以便我们能够帮助您推进方法,因为有多种方法可以解决同一问题 我的尝试如下: 1) 按递增顺序对日期排序 2) 仅筛选一年的最后日期。
var res=[“2017-06-14”、“2017-06-30”、“2017-09-29”、“2017-12-29”、“2018-03-29”、“2018-06-29”、“2018-09-28”、“2018-12-31”、“2019-03-29”、“2019-06-28”]
.sort((a,b)=>a.replace(/-/g')-b.replace(/-/g'))
.filter((d,i,c)=>!c[i+1]| | d.split('-')[0]!=c[i+1]。split('-')[0])
log(res)
它是关于按年份分组和按最新版本筛选的组合
这种方法使用a和年份作为键,检查日期是否大于实际日期,然后替换旧日期
constgetyear=date=>date.slice(0,4);
风险值数据=[“2017-06-14”、“2017-06-30”、“2017-09-29”、“2017-12-29”、“2018-03-29”、“2018-06-29”、“2018-09-28”、“2018-12-31”、“2019-03-29”、“2019-06-28”],
结果=数组。从(数据)
.reduce((m,d)=>m.get(getYear(d))>d?m:m.set(getYear(d),d),新地图)
.values()
);
控制台日志(结果)代码>添加您迄今为止尝试过的代码片段我知道如何筛选这些日期。请在发布之前尝试一下。由于日期已被排序,因此一个简单的
for循环并将前4个字符与前一项的4个字符进行比较,然后根据条件添加到输出数组中?请阅读