这段js代码怎么优化呀?

function returnYear(month)
        {
            if(month<=1*12)
                return "第二年";
            if(month<=2*12)
                return "第二年,第三年";
            if(month<=3*12)
                return "第二年,第三年,第四年";
            if(month<=4*12)
                return "第二年,第三年,第四年,第五年";
            if(month<=5*12)
                return "第二年,第三年,第四年,第五年,第六年";
            if(month<=6*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年";
            if(month<=7*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年,第八年";
            if(month<=8*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年,第八年,第九年";
            if(month<=9*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年,第八年,第九年,第十年";
            if(month<=10*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年,第八年,第九年,第十年,第十一年";
            if(month<=11*12)
                return "第二年,第三年,第四年,第五年,第六年,第七年,第八年,第九年,第十年,第十一年,第十二年";
            
            
        }
阅读 2.7k
5 个回答
var txt = ['第二年', '第三年', '第四年', ...];
return txt.slice(0, Math.ceil(month / 12)).join(',')
function getYear(month) {
    let num = Math.ceil(month / 12);
    let year = '';
    for (let i = 1; i <= num; i++) {
        year += `第${i}年,`
    }
    year = year.slice(0,-1); //去掉最后逗号
    return year;
}
getYear(month) {//25-36 =>4
    let chNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
    let chList = [];
    for (let n = 0; n <= 11; n++) {
      if (month > n * 12) {
        chList.push(`第${chNum[n + 2]}年`)
      }
    }
    return chList.join(',');
  }

 let chList = this.getYear(9 * 12 - 1);

第二年,第三年,第四年,第五年,第六年,第七年,第八年,第九年,第十年

function newReturnYear (month) {
  if (month <= 12) { return '第二年' }
  if (month <= 11*12) {
    return ['第二年', '第三年', '第四年', '第五年', '第六年', '第七年', '第八年', '第九年', '第十年', '第十一年', '第十二年']
      .slice(0, Math.ceil(month / 12)).join(',')
  }
}

验证

for (let i = -1; i < 11*12+1; i += 1) {
  console.assert(returnYear(i) === newReturnYear(i))
}
新手上路,请多包涵
        function getYear(month){
            var year = "零,一,二,三,四,五,六,七,八,九,十,十一,十二";
            var index = Math.ceil(month/12);
            var strArr = [];
            for(var i=1;i<=index;i++){
                strArr.push("第"+year.split(",")[i+1]+"年");
            }
            return strArr.toString();
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题