如何按日期范围对对象数组中的日期属性进行分组

时间:2021-06-09 11:37:58

标签: javascript arrays date object ecmascript-6

所以我有一个这样的对象数组:

const data = [
  {
    "occurredAt": "04/19/2021",
    "sold": 5762,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -5762,
    "soldInPeriod": 13
  },
  {
    "occurredAt": "04/18/2021",
    "sold": 5749,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -5749,
    "soldInPeriod": 65
  },
  {
    "occurredAt": "04/17/2021",
    "sold": 5684,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -5684,
    "soldInPeriod": 120
  },
  {
    "occurredAt": "04/16/2021",
    "sold": 5564,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -5564,
    "soldInPeriod": 737
  },
  {
    "occurredAt": "04/15/2021",
    "sold": 4827,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -4827,
    "soldInPeriod": 890
  },
  {
    "occurredAt": "04/14/2021",
    "sold": 3937,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -3937,
    "soldInPeriod": 1227
  },
  {
    "occurredAt": "04/13/2021",
    "sold": 2710,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -2710,
    "soldInPeriod": 2707
  },
  {
    "occurredAt": "04/05/2021",
    "sold": 3,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -3,
    "soldInPeriod": 2
  },
  {
    "occurredAt": "04/02/2021",
    "sold": 1,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -1,
    "soldInPeriod": 1
  }
];

我有一个这样的日期范围数组

const dateRange = ['2021-05-01', '2021-05-31'];

我正在尝试按日期范围差异对数据进行分组。 dateRange相差一个月,所以对象中的occurredAt应该是2021-04-01 - 2021-04-302021-03-01 - 2021-03-31等等,其余的属性应该总结一下,如果有该时间段没有数据,所有值应为0,整个过程应滚动6次,数据长度为6个对象。此外,dateRange 可以是从日期选择器中选择的任何其他范围,但重点是从 dateRange 获取天数差异并按该差异对数据进行分组。预期的结果应该是这样的

const data = [
  {
    "occurredAt": "'04/1/2021' - '04/30/2021'",
    "sold": 34237,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": -34237,
    "soldInPeriod": 5762
  },
  {
    "occurredAt": "'03/1/2021' - '03/31/2021'",
    "sold": 0,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": 0,
    "soldInPeriod": 0
  },
  {
    "occurredAt": "'02/1/2021' - '02/28/2021'",
    "sold": 0,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": 0,
    "soldInPeriod": 0
  },
  {
    "occurredAt": "'01/1/2021' - '01/31/2021'",
    "sold": 0,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": 0,
    "soldInPeriod": 0
  },
  {
    "occurredAt": "'12/1/2020' - '12/31/2020'",
    "sold": 0,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": 0,
    "soldInPeriod": 0
  },
  {
    "occurredAt": "'11/1/2020' - '11/30/2020'",
    "sold": 0,
    "killed": 0,
    "reserved": 0,
    "held": 0,
    "open": 0,
    "soldInPeriod": 0
  },
];

我知道这个问题不是书上写的,我知道我应该附上一些我尝试过的代码,但问题是我不知道从哪里开始。欢迎所有提示和示例!提前致谢!

0 个答案:

没有答案