カレンダーの月表示で数字を二桁に揃えたい


下記のコードを実行すると、10月、11月、12月のセレクトボックスの表示が010月、011月、012月になってしまうのですが、0を無くす書き方を教えて頂きたいです。

* * *

**HTML**

[code]

    <input name="textYear"> 年
      <select name="selectMonth"></select> 月
    
[/code]

**Javascript**

[code]

    $(function(){
        $('input[name="textYear"]').on('change keyup',function(){
            $('select[name="selectMonth"] option').remove();
            $('select[name="selectMonth"]').append($("<option></option>"));
    
            if($(this).val() != ""){
                for(i=4;i<=15;i++){
                    let m = (i<13)?i:(i-12);
                    m =('0' + m).slice(-length);
                    let y = (i<13)?$(this).val():parseInt($(this).val())+1;
    
                    let op =$("<option></option>",{
                        value:y+m,
                        html:y+"年"+m+"月"
    
                    });
                    $('select[name="selectMonth"]').append(op);
                }
            }
        });
    });
    
[/code]

最後にこのコードですが、４は４月から始まるから４で１５はなぜ１５という数字が出てきたのか教えて頂きたいです。あと、１３とー１２の意味も教えて頂きたいです。  
for(i=4;i<=15;i++){  
let m = (i<13)?i:(i-12);



[code]

    m=('00' + m).slice(-2);
    
[/code]

とすれば、とりあえず表示されるようになります。




`padStart()` を使うと簡潔にできます。

[code]

    m = m.toString().padStart(2, '0');
    
[/code]

また、4から15のループになっているのは、4月から翌年3月(12 + 3)までの月を生成したいからと思われます。`(i < 13) ? i : (i -
12)`は、13から15の値を1から3に直しています。

