如何过滤两个日期之间的对象数组?
How can I filter an array of objects between two dates?
除了偶尔的jQuery选择器和元素修改,我不太擅长javascript。对于我遇到的问题,我需要按日期过滤出javascript对象。我有一个像这样的结构:
Object { version: "3.1.1", released_on: "2016-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 }
我想找到"2016-08-21T00:00:00.000Z"
和"2010-08-21T00:00:00.000Z"
之间10年的所有对象,我遇到的问题是released_on:
字段是字符串而不是日期。我是否需要创建一个new Date()
对象,将其转换为字符串,然后使用.filter
,或者我将做相反的事情,将字符串转换为日期,然后过滤。以前有人尝试过这样的东西吗?
您可以这样做;
var data = [{ version: "3.1.1", released_on: "2016-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2011-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2009-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2006-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2013-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2017-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
{ version: "3.1.1", released_on: "2015-08-21T00:00:00.000Z", high_vulns: 15, medium_vulns: 10, low_vulns: 5 },
],
ed = new Date("2016-08-21T00:00:00.000Z").getTime(),
sd = new Date("2010-08-21T00:00:00.000Z").getTime(),
result = data.filter(d => {var time = new Date(d.released_on).getTime();
return (sd < time && time < ed);
});
console.log(result);
export const filterBetweenDates = (data, setState, fromDate, toDate) => {
try {
setState(data.filter(({ date }) => date >= fromDate && date <= toDate));
} catch (error) {
console.log('error while filtering by dates', error.message);
}
};
相关文章:
- 在 JavaScript 数组中的所有元素之间穿插元素的简洁方法
- 效率:整数数组的一个子集中两个项之间的最大差值
- 使用Javascript获取两个字符串之间的字符串数组
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 尝试在一个对象的值和一个对象数组之间进行匹配
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 无法在提交之间清空数组
- 使用工厂/服务在控制器AngularJS之间推送数组中的数据
- 数组和ArrayBuffer之间的区别是什么
- 只有一些带undercore.js的字段在对象数组之间求交集和等于
- 如何在数组中循环,等待每个项目之间的时间
- 在数组中的偶数之间插入连字符
- 创建新数组和清除长度之间的差异
- 如何循环数组并保持它们之间的索引增长
- for(数组中的i)和for(var i=0;i<array.length;i++)之间的差异
- 在javascript数组元素之间添加换行符
- 我如何获得 Javascript 中关联数组和常规数组之间的区别
- 如何确定数组中的值是否位于两个附加数组的所有并行索引的值之间
- 数组值和字符串之间的 JavaScript 比较
- AngularJS控制器语法 - 数组和函数版本之间的差异