Javascript 过滤器阵列在JS中持续12个月

Javascript 过滤器阵列在JS中持续12个月,javascript,arrays,filter,momentjs,lodash,Javascript,Arrays,Filter,Momentjs,Lodash,给定数组对象,筛选数组以返回最近12个月的数据 示例1:今天是2021年5月,因此返回的数据日期范围介于2020年6月到2021年5月之间 示例2:对于2016年,返回的数据日期范围介于2015年6月至2016年5月之间 var观测=[ {游戏分数:“1”,报告日期:“2021-09-09”}, {游戏分数:“1”,报告日期:“2021-05-09”}, {游戏分数:“1”,报告日期:“2020-06-09”}, {游戏分数:“1”,报告日期:“2020-04-09”}, {游戏分数:“1”,

给定数组对象,筛选数组以返回最近12个月的数据

示例1:今天是2021年5月,因此返回的数据日期范围介于2020年6月到2021年5月之间

示例2:对于2016年,返回的数据日期范围介于2015年6月至2016年5月之间

var观测=[
{游戏分数:“1”,报告日期:“2021-09-09”},
{游戏分数:“1”,报告日期:“2021-05-09”},
{游戏分数:“1”,报告日期:“2020-06-09”},
{游戏分数:“1”,报告日期:“2020-04-09”},
{游戏分数:“1”,报告日期:“2019-08-09”},
{游戏分数:“1”,报告日期:“2019-03-09”},
];
//例1
const example1Result=u.filter(观测值,o=>moment()
.add(-12,“月”)
.Issame或之前(时间(o.reportDate));
console.log(示例1结果);
//例2
const example2Result=u.filter(观测值,o=>!矩()
.add(-1,“年”)
.i之后(时间(o.reportDate));
console.log(example2Result)


除了-12个月,你还必须在这一年中做-1,以便你参考上一年。

你可以使用ISBEVER矩量法(并使用
.subtract()
代替
.add(-12..)

与第四个参数类似的
[
仅用于包含(
[
]
)或排除(
)用于范围限制的日期。[此处为文档][1]

var观测=[
{游戏分数:“1”,报告日期:“2021-09-09”},
{游戏分数:“1”,报告日期:“2021-05-09”},
{游戏分数:“1”,报告日期:“2020-06-09”},
{游戏分数:“1”,报告日期:“2020-04-09”},
{游戏分数:“1”,报告日期:“2019-08-09”},
{游戏分数:“1”,报告日期:“2019-03-09”},
];
结果=观察值。筛选(o=>moment(o.reportDate,'yyyyy-MM-DD')。isBetween(moment()。减去(12,'months'),moment(),'[]);
console.log(结果);

你试过调试它吗?或者是其他人帮你调试吗?@andymcculough我当然试过了。添加了jsfiddle。顺便说一句,你可以跳过问题而不显得粗鲁。谢谢你的回答!我添加了一点关于实现示例2的内容。
let result = observations.filter(o => moment(o.reportDate, 'YYYY-MM-DD').isBetween(moment().subtract(12, 'months'), moment(), undefined, '[]'));