Javascript 从一系列日期中获取每周和每月数据的最佳方法是什么?
我必须在图表中显示注册用户的每日/每周/每月计数。这是我从后端得到的数据。现在我需要根据视图类型遍历数组。 我有这样的数据:Javascript 从一系列日期中获取每周和每月数据的最佳方法是什么?,javascript,arrays,object,foreach,momentjs,Javascript,Arrays,Object,Foreach,Momentjs,我必须在图表中显示注册用户的每日/每周/每月计数。这是我从后端得到的数据。现在我需要根据视图类型遍历数组。 我有这样的数据: [ { "date": "2019-10-28", "count": 0 }, { "date": "2019-10-29", "count": 4 }, { "date": "2019-10-30", "count": 5 }, { "date": "2019-10-31", "
[
{
"date": "2019-10-28",
"count": 0
},
{
"date": "2019-10-29",
"count": 4
},
{
"date": "2019-10-30",
"count": 5
},
{
"date": "2019-10-31",
"count": 2
},
{
"date": "2019-11-01",
"count": 0
},
{
"date": "2019-11-02",
"count": 6
},
{
"date": "2019-11-03",
"count": 0
},
{
"date": "2019-11-04",
"count": 0
},
{
"date": "2019-11-05",
"count": 0
},
{
"date": "2019-11-06",
"count": 0
},
{
"date": "2019-11-07",
"count": 0
},
{
"date": "2019-11-08",
"count": 0
},
{
"date": "2019-11-09",
"count": 0
}
]
[
{
"week": 44,
"count": 15
},
{
"week": 45,
"count": 13
},
{
"week": 46,
"count": 3
},
{
"week": 47,
"count": 13
}
]
[
{
"10": 100,
"count": 15
},
{
"11": 45,
"count": 13
},
{
"12": 460,
"count": 3
}
]
array.forEach((item, index) => {
var weeknumber = moment(item.date).week();
console.log("Week ", weeknumber);
})
如果是“每周视图”类型,则我需要得到如下结果:
[
{
"date": "2019-10-28",
"count": 0
},
{
"date": "2019-10-29",
"count": 4
},
{
"date": "2019-10-30",
"count": 5
},
{
"date": "2019-10-31",
"count": 2
},
{
"date": "2019-11-01",
"count": 0
},
{
"date": "2019-11-02",
"count": 6
},
{
"date": "2019-11-03",
"count": 0
},
{
"date": "2019-11-04",
"count": 0
},
{
"date": "2019-11-05",
"count": 0
},
{
"date": "2019-11-06",
"count": 0
},
{
"date": "2019-11-07",
"count": 0
},
{
"date": "2019-11-08",
"count": 0
},
{
"date": "2019-11-09",
"count": 0
}
]
[
{
"week": 44,
"count": 15
},
{
"week": 45,
"count": 13
},
{
"week": 46,
"count": 3
},
{
"week": 47,
"count": 13
}
]
[
{
"10": 100,
"count": 15
},
{
"11": 45,
"count": 13
},
{
"12": 460,
"count": 3
}
]
array.forEach((item, index) => {
var weeknumber = moment(item.date).week();
console.log("Week ", weeknumber);
})
如果是montly,那么我需要得到如下结果:
[
{
"date": "2019-10-28",
"count": 0
},
{
"date": "2019-10-29",
"count": 4
},
{
"date": "2019-10-30",
"count": 5
},
{
"date": "2019-10-31",
"count": 2
},
{
"date": "2019-11-01",
"count": 0
},
{
"date": "2019-11-02",
"count": 6
},
{
"date": "2019-11-03",
"count": 0
},
{
"date": "2019-11-04",
"count": 0
},
{
"date": "2019-11-05",
"count": 0
},
{
"date": "2019-11-06",
"count": 0
},
{
"date": "2019-11-07",
"count": 0
},
{
"date": "2019-11-08",
"count": 0
},
{
"date": "2019-11-09",
"count": 0
}
]
[
{
"week": 44,
"count": 15
},
{
"week": 45,
"count": 13
},
{
"week": 46,
"count": 3
},
{
"week": 47,
"count": 13
}
]
[
{
"10": 100,
"count": 15
},
{
"11": 45,
"count": 13
},
{
"12": 460,
"count": 3
}
]
array.forEach((item, index) => {
var weeknumber = moment(item.date).week();
console.log("Week ", weeknumber);
})
利用图书馆时刻,我可以得到如下周数:
[
{
"date": "2019-10-28",
"count": 0
},
{
"date": "2019-10-29",
"count": 4
},
{
"date": "2019-10-30",
"count": 5
},
{
"date": "2019-10-31",
"count": 2
},
{
"date": "2019-11-01",
"count": 0
},
{
"date": "2019-11-02",
"count": 6
},
{
"date": "2019-11-03",
"count": 0
},
{
"date": "2019-11-04",
"count": 0
},
{
"date": "2019-11-05",
"count": 0
},
{
"date": "2019-11-06",
"count": 0
},
{
"date": "2019-11-07",
"count": 0
},
{
"date": "2019-11-08",
"count": 0
},
{
"date": "2019-11-09",
"count": 0
}
]
[
{
"week": 44,
"count": 15
},
{
"week": 45,
"count": 13
},
{
"week": 46,
"count": 3
},
{
"week": 47,
"count": 13
}
]
[
{
"10": 100,
"count": 15
},
{
"11": 45,
"count": 13
},
{
"12": 460,
"count": 3
}
]
array.forEach((item, index) => {
var weeknumber = moment(item.date).week();
console.log("Week ", weeknumber);
})
我不确定获得预期结果的最佳方法和途径。
有什么建议吗?谢谢 您需要处理数据并准备一个通用逻辑来将数据转换为正确的格式 您可以使用
groupBy
和forEach
以及reduce
方法来准备数据,如下例所示
演示: