我们可以使用 JavaScript 来编写一个函数,该函数接受一个包含日期和特定对象的数组,并返回一个按月份统计特定对象数量的数组。
下面是代码示例:
function countObjectByMonth(array) {
// 创建一个对象存储按月份统计的结果
const result = {};
// 遍历数组中每个元素
for (let i = 0; i < array.length; i++) {
// 获取当前元素的日期和特定对象
const { date, object } = array[i];
// 将日期转换为年月格式,如:2022-01
const month = date.toISOString().slice(0, 7);
// 判断是否已存在该月份的统计结果
if (!result[month]) {
// 如果不存在,创建一个包含该月份的对象并初始化数量为 1
result[month] = {
month,
[object]: 1
};
} else {
// 如果已存在,增加该月份特定对象数量
result[month][object] = (result[month][object] || 0) + 1;
}
}
// 将结果转换为数组并返回
return Object.values(result);
}
// 测试代码
const array = [
{ date: new Date('2022-01-01'), object: 'A' },
{ date: new Date('2022-01-01'), object: 'B' },
{ date: new Date('2022-02-01'), object: 'A' },
{ date: new Date('2022-02-01'), object: 'B' },
{ date: new Date('2022-02-01'), object: 'B' },
];
console.log(countObjectByMonth(array));
// 输出:
// [
// { month: '2022-01', A: 1, B: 1 },
// { month: '2022-02', A: 1, B: 2 },
// ]
上一篇:按月统计活跃系统数