js如何获取两个时间中的所有年月?

有2个时间:2016-4-12 2018-7-10 如何获取其中所有的年月?不需要精确到日

function getYearAndMonth(start, end) {
    var result = [];
    var starts = start.split('-');
    var ends = end.split('-');
    var staYear = parseInt(starts[0]);
    var staMon = parseInt(starts[1]);
    var endYear = parseInt(ends[0]);
    var endMon = parseInt(ends[1]);
    while (staYear <= endYear) {
        if (staYear === endYear) {
            while (staMon < endMon) {
                staMon++;
                result.push({year: staYear, month: staMon});
            }
            staYear++;
        } else {
            staMon++;
            if (staMon > 12) {
                staMon = 1;
                staYear++;
            }
            result.push({year: staYear, month: staMon});
        }
    }

    return result;
}

由于lz从来不采纳答案,原回答删除。

  • 最近面了几个前端开发的实习,包括阿里的暑期还有一些公司,有些面试问题网上搜不到特别明白的答案,求助大神!
  • 关于比较函数的问题
  • 怎么遮挡iframe内嵌第三方页面的广告?
  • gulp本地安装问题
  • 今天看requireJS源码产生一个问题,想请教一下大家:
  • 求一款开源js取色插件
  • canvas 生成的图片是黑色
  • requirejs中require.config如何全局定义?
  • 使用easyui出现的dialog 显示不正常问题
  • 微信窗口 只要滑动弹屏的内容 底层主页面中的滚轴也跟着动 怎么固定底层的滚轴不动
  • 求一个拿到后台接口后,用ajax请求显示的完整点的例子