Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按月份和年份统计数组项_Javascript_Arrays_Typescript - Fatal编程技术网

Javascript 按月份和年份统计数组项

Javascript 按月份和年份统计数组项,javascript,arrays,typescript,Javascript,Arrays,Typescript,我收到多个包裹的json日期。日期通常表示创建特定地块的日期和时间。因此,根据该日期,我想统计每个月创建的包裹数量。我以前从未这样做过,我不确定stackoverflow的哪一个线程可以在这方面帮助我。我将非常感谢任何解释,以解决这个帮助或代码参考。 这是我的JSON结果示例 [ { "createdAt": "2019-12-30T04:36:05.001Z" }, { "createdAt": "2019-12-06T08:58:23.030Z" }, {

我收到多个包裹的json日期。日期通常表示创建特定地块的日期和时间。因此,根据该日期,我想统计每个月创建的包裹数量。我以前从未这样做过,我不确定stackoverflow的哪一个线程可以在这方面帮助我。我将非常感谢任何解释,以解决这个帮助或代码参考。 这是我的JSON结果示例

[
  {
    "createdAt": "2019-12-30T04:36:05.001Z"
  },
  {
    "createdAt": "2019-12-06T08:58:23.030Z"
  },
  {
    "createdAt": "2020-01-08T19:00:21.873Z"
  },
  {
    "createdAt": "2020-01-10T14:55:50.781Z"
  },
  {
    "createdAt": "2019-12-21T13:05:09.983Z"
  },
  {
    "createdAt": "2020-01-15T12:10:20.316Z"
  },
  {
    "createdAt": "2020-01-14T06:47:36.078Z"
  },
  {
    "createdAt": "2020-02-15-T06:47:36.078Z"
  }
]

我正在与angular合作,因此我从我的服务中获取这些数据。所以现在我需要显示每月创建的包裹总数。

您可以获取日期字符串的一部分作为键,并使用对象进行计数

var数据=[{createdAt:“2019-12-30T04:36:05.001Z”},{createdAt:“2019-12-06T08:58:23.030Z”},{createdAt:“2020-01-08T19:00:21.873Z”},{createdAt:“2020-01-10T14:55:50.781Z”},{“2020-02-15-T06:47:36.078Z”},
结果=数据.reduce((r,{createdAt})=>{
var key=createdAt.slice(0,7);
r[键]=(r[键]| 0)+1;
返回r;
}, {});

console.log(result);
您可以获取日期字符串的一部分作为键,并使用对象进行计数

var data=[{createdAt:“2019-12-30T04:36:05.001Z”},{createdAt:“2019-12-06T08:58:23.030Z”},{createdAt:“2020-01-08T19:00:21.873Z”},{createdAt:“2020-01-10T14:55:50.781Z”},{2020-02-15-T06:47:36.078Z“}”,
结果=数据.reduce((r,{createdAt})=>{
var key=createdAt.slice(0,7);
r[键]=(r[键]| 0)+1;
返回r;
}, {});
console.log(结果);
您可以使用它来汇总记录。 “2019-12-12-10-10-10-10-10-10-10-14-14 14:14:55:55:50.781Z“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,02-15T06:47:36.078Z“}], summary=src.reduce((res,{createdAt})=>{ const year=新日期(createdAt).getFullYear(), 月份=新日期(createdAt).getMonth()+1 res[`{year}-${month}`]=(res[`{year}-${month}`]|0)+1 返回res }, {}) console.log(summary)可用于汇总记录。 “2019-12-12-10-10-10-10-10-10-10-14-14 14:14:55:55:50.781Z“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,02-15T06:47:36.078Z“}], summary=src.reduce((res,{createdAt})=>{ const year=新日期(createdAt).getFullYear(), 月份=新日期(createdAt).getMonth()+1 res[`{year}-${month}`]=(res[`{year}-${month}`]|0)+1 返回res }, {})
console.log(摘要)你尝试过什么吗?@NinaScholz没有,因为我不确定从哪里开始。我甚至在数据中没有看到任何
包裹
。你期望得到什么结果?顺便说一句,是一个字符串。@NinaScholz我在通过服务点击api时过滤掉它们,因为我不需要包裹的详细信息,只需要创建日期在这些包裹中。你尝试过什么吗?@NinaScholz没有,因为我不知道从哪里开始。我甚至在数据中没有看到任何
包裹
。你期望得到什么结果?顺便说一句,是一个字符串。@NinaScholz我在通过服务点击api时过滤掉它们,因为我不需要包裹的详细信息,只需要创建这些包裹的日期。@ahsannissar:虽然这一个比它更快、更短,但您需要记住,这将适用于ISO格式的日期,因此,如果您有类似“2020年6月15日”的内容,您将需要一些更通用的解决方案。@yevgenGorbunkov您是对的,但我不会从后端获取任何其他格式的日期,因此没有其他原因w这一个对我来说很好。@ahsannissar:虽然这一个比ISO格式的日期更快、更短,但您需要记住,这将适用于ISO格式的日期,因此,如果您有类似“2020年6月15日”的内容,您将需要一些更通用的解决方案。@yevgenGorbunkov您是对的,但我不会从后端获取任何其他格式的日期,以便现在这段代码对我来说很好。我将保存这段代码以备将来使用。这是一个很好的使用不同格式的解决方案。我将保存这段代码以备将来使用。这是一个很好的使用不同格式的解决方案