在工作中经常遇到统计图的需求,比如柱状图,饼图,折线图等等,经常需要统计连续一段时间内的图表,但后端由于各种原因返的数据并不全,比如哪个月份没有数据,所有反的结果就没有这个月份的,所以统计图可能缺失某些月份,第一是看着像一个bug,第二是对于有强迫症来说并不完美,那这个前端应该怎么解决呢,所以我就硬着头皮写了一个处理这种情况的方法,保守点花了一两个小时。。下面分享下这个根据一个日期字符串计算出连续12个月的年月日期字符串数组:
get_moths(start) {//vue
let arr = [] //结果数组
// 当前年月
let str = start
// 先放一个
arr.push(str)
// 获取当前年份
let current_year = parseInt(str.substr(0, 4))
for (let i = 0; i < 12; i++) {
// 下一月份
let next = parseInt(str.substr(5, 2)) + 1
if (next > 12) {
current_year++
str = `${current_year}-01`
} else {
if (next < 10) {
next = '0' + next
}
str = `${current_year}-${next}`
}
arr.push(str)
}
return arr
}
使用实例:
get_moths('2022-08')
测试结果如图:

这个方法的算法和原理是比较明确的,大家可以根据实际情况自行修改。
友情分享:WX搜索:妖股投票器