javascriptarraysfor-loop

javascript create array from for loop


I have a years range stored into two variables. I want to create an array of the years in the range.

something like:

var yearStart = 2000;
var yearEnd = 2040;

var arr = [];

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

     var obj = {
        ... 
     };

      arr.push(obj);
}

What should I put inside the obj ?

The array I'd like to generate would be like:

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

Solution

  • even shorter if you can lose the yearStart value:

    var yearStart = 2000;
    var yearEnd = 2040;
    
    var arr = [];
    
    while(yearStart < yearEnd+1){
      arr.push(yearStart++);
    }
    

    UPDATE: If you can use the ES6 syntax you can do it the way proposed here:

    let yearStart = 2000;
    let yearEnd = 2040;
    let years = Array(yearEnd-yearStart+1)
        .fill()
        .map(() => yearStart++);