如何在不指定javascript中的每个选项的情况下定义数组范围?
现在我有这个:
var year = {
'0': '2000',
'1': '2001',
'2': '2002',
'3': '2003',
'4': '2004',
'5': '2005',
'6': '2006',
'7': '2007',
'8': '2008',
'9': '2009'
};
答案 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)
您的代码示例和您的问题完全不同:
这被认为是一个对象
var variable = {};
而这被认为是一个数组
var variable = [];
它们之间存在细微差别。有关该主题的更多信息,您可以查看 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]
。