【问题标题】:I am working on array filters. i am stuck with adding filters to date我正在研究数组过滤器。我被困在迄今为止添加过滤器
【发布时间】:2020-09-15 14:46:35
【问题描述】:

我将数据存储在一个数组中,我想用日期参数制作数组过滤器。

示例:

date.filter(obj => obj.date >= '2020-09-01 00:00:01 UTC' && obj.date <= '2020-09-05 23:59:59 UTC')

然后我需要查看这些日期之间的记录长度,在上面的示例中为 5。

代码

<!DOCTYPE html>
<html>
<body>
<script>
let orders = [
  {  amount: '100', user: 'admin', date: '2020-09-01 00:00:01 UTC' },
  {  amount: '120', user: 'admin', date: '2020-09-02 00:00:01 UTC' },
  {  amount: '80',  user: 'admin', date: '2020-09-03 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-04 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-05 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-06 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-07 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-08 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-09 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-10 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-11 00:00:01 UTC' },
];

console.log(orders)
</script>
</body>
</html>

提前致谢

【问题讨论】:

  • 那些不是日期。这些是字符串文字。您需要将日期字符串解析为实际日期,然后才能对其进行任何计算。

标签: javascript arrays date array-filter


【解决方案1】:

您需要将日期字符串转换为实际的Date objects

const orders = [
  {  amount: '100', user: 'admin', date: '2020-09-01 00:00:01 UTC' },
  {  amount: '120', user: 'admin', date: '2020-09-02 00:00:01 UTC' },
  {  amount: '80',  user: 'admin', date: '2020-09-03 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-04 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-05 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-06 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-07 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-08 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-09 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-10 00:00:01 UTC' },
  {  amount: '200', user: 'admin', date: '2020-09-11 00:00:01 UTC' },
];

const getOrdersBetween = (orders, start, end) => orders.filter(({ date }) => new Date(date) >= new Date(start) && new Date(date) <= new Date(end));

const result = getOrdersBetween(orders, '2020-09-01 00:00:01 UTC', '2020-09-05 23:59:59 UTC');

console.log(result);

【讨论】:

  • 这将返回一个空数组,并提供数据,该数组必须有 5 个元素...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多