在es6中聚合大型数据集

时间:2018-04-01 11:43:49

标签: javascript ecmascript-6

我有5年的每日数据,我想用JavaScript / ES6汇总到每个月的最后一天,但我看不出我会怎么做。

有没有人有理论或方法这样做?我过去没有做过这么多繁重的数据操作,所以我甚至不确定如何处理这个问题,更不用说最好的方法了。

非常感谢任何帮助。

我想要达到的目标(每个月的最后一天):

[
  {
    x: ‘2018-03-31’,
    y: 27
  },
  {
    x: ‘2018-02-28,
    y: 32
  },
  {
    x: ‘2018-01-30,
    y: 27
  },
  {
    x: ‘2017-12-31’,
    y: 27
  },
  {
    x: ‘2017-11-30,
    y: 32
  },
  {
    x: ‘2017-10-31,
    y: 27
  }
]

目前的数据格式:

[
  {
    x: ‘2018-03-31’,
    y: 27
  },
  {
    x: ‘2018-03-30',
    y: 32
  }
  {
    x: ‘2018-03-29’,
    y: 27
  },
  {
    x: ‘2018-03-28',
    y: 32
  }
]

每天持续五年。

1 个答案:

答案 0 :(得分:0)

如果filter的下一个日期为1,请尝试input x



const input = [
  {
    x: "2018-03-31",
    y: 27
  },
  {
    x: "2018-03-30",
    y: 32
  },
  {
    x: "2018-03-01",
    y: 27
  },
  {
    x: "2018-02-28",
    y: 32
  },
  {
    x: "2018-02-27",
    y: 27
  },
  {
    x: "2018-02-01",
    y: 32
  },
  {
    x: "2018-01-31",
    y: 27
  },
  {
    x: "2018-01-30",
    y: 27
  }
];
let output = input.filter(
  date =>
    new Date(
      new Date(date.x.split("-").join(",")).getTime() + 24 * 60 * 60 * 1000
    ).getDate() === 1
);
console.log(output);