41

我有一个存储到两个变量中的年份范围。我想在该范围内创建一个年份数组。

就像是:

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

for (var i = yearStart; i < yearEnd; i++) {

     var obj = {
        ... 
     };

      arr.push(obj);
}

我应该在 obj 里面放什么?

我想生成的数组如下:

arr = [2000, 2001, 2003, ... 2039, 2040]
4

4 回答 4

57

如果您可以丢失 yearStart 值,则更短:

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

while(yearStart < yearEnd+1){
  arr.push(yearStart++);
}

更新:如果您可以使用 ES6 语法,您可以按照此处建议的方式进行操作:

let yearStart = 2000;
let yearEnd = 2040;
let years = Array(yearEnd-yearStart+1)
    .fill()
    .map(() => yearStart++);
于 2012-09-19T08:59:47.447 回答
30

你需要推i

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

for (var i = yearStart; i < yearEnd+1; i++) {
    arr.push(i);
}

然后,您的结果数组将是:

arr = [2000, 2001, 2003, ... 2039, 2040]

希望这可以帮助

于 2012-09-19T08:36:25.560 回答
8
var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

for (var i = yearStart; i <= yearEnd; i++) {

     arr.push(i);
}
于 2012-09-19T08:37:36.523 回答
3

删除obj并在您的 for 循环中执行此操作:

arr.push(i);

此外,i < yearEnd条件不包括最后一年,因此将其更改为i <= yearEnd

于 2012-09-19T08:38:36.107 回答