在javascript中设置年份范围

时间:2013-06-05 18:40:01

标签: javascript arrays range

如何在不指定javascript中的每个选项的情况下定义数组范围?

现在我有这个:

    var year = { 
            '0': '2000',
                '1': '2001',
                '2': '2002',
                '3': '2003',
                '4': '2004',
                '5': '2005',
                '6': '2006',
                '7': '2007',
                '8': '2008',
                '9': '2009' 
            };

3 个答案:

答案 0 :(得分:1)

你说你想要一个数组,但你的例子中有一个普通的旧对象。但是,根据你对这个答案的评论,听起来你真的想要一个普通的对象,所以我会用它。

无论如何,您可以通过循环执行此操作:

var year = {};        //or use [] if you want an array
var min_year = 2000;
var max_year = 2009;
for(var i = 0; i <= max_year - min_year; i++) {
    year[i] = i + min_year;
}

alert(year[5]);   //2005

您可以扩展此示例以满足您的需求。

答案 1 :(得分:1)

您不必使用循环来解决问题

var startYr = 2000;

var year = function(i){
    return i + startYr;
};

// usage
year(0);

// output
2000

答案 2 :(得分:1)

您的代码示例和您的问题完全不同:

  1. 这被认为是一个对象

    var variable = {};
    
  2. 而这被认为是一个数组

    var variable = [];
    
  3. 它们之间存在细微差别。有关该主题的更多信息,您可以查看 What is the difference between an array and an object?

    所以,如果你真的需要一个javascript数组,这段代码应该可以完成这项工作:

    function generate_year_range(start, end){
        var years = [];
        for(var year = start; year <= end; year++){
            years.push(year)
        }
        return years;
    }
    var my_years = generate_year_range(2000,2009);
    

    这将产生从2000年到2009年(包括)的年份并将它们存储到数组中。因此,您的my_years变量将保留[2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009]