我试图在JavaScript中创建一个动态选择框,其范围是从“某年”开始到当前年结束的几年。是否有像JavaScript中的Ruby的range类之类的东西,还是我必须使用for循环遍历多年?

这是我想出的,尽管我认为在Ruby中我可以使用范围来考虑很多。

    this.years = function(startYear){
        startYear = (typeof(startYear) == 'undefined') ? 1980 : startYear
        var currentYear = new Date().getFullYear();
        var years = []
        for(var i=startYear;i<=currentYear;i++){
            years.push(i);
        }
        return years;
    }

最佳答案

JavaScript确实具有Range对象,但是它引用DOM的任意部分,并且在IE 6/7中不受支持。

如果需要,您可以简化此功能,但实际上都是一样的。

this.years = function(startYear) {
    var currentYear = new Date().getFullYear(), years = [];
    startYear = startYear || 1980;
    while ( startYear <= currentYear ) {
        years.push(startYear++);
    }
    return years;
}

console.log( this.years(2019-20));

10-04 14:30