0

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

现在我有这个:

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

3 回答 3

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

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

于 2013-06-05T18:44:10.107 回答
1

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

  1. 这被认为是一个对象

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

    var variable = [];
    

它们之间有细微的差别。有关该主题的更多信息,您可以查看 数组和对象之间的区别是什么?

因此,如果您确实需要一个 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].

于 2013-06-05T20:24:03.450 回答
0

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

var startYr = 2000;

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

// usage
year(0);

// output
2000
于 2013-06-05T18:52:54.663 回答