# Create array sequence `[0, 1, ..., N-1]` in one line

Here are two compact code sequences to generate the `N`

-element array `[0, 1, ..., N-1]`

:

### Solution 1 (requires ES5)

```
Array.apply(null, {length: N}).map(Function.call, Number);
```

#### Brief explanation

`Array.apply(null, {length: N})`

returns an`N`

-element array filled with`undefined`

(i.e.`A = [undefined, undefined, ...]`

).`A.map(Function.call, Number)`

returns an`N`

-element array, whose index`I`

gets the result of`Function.call.call(Number, undefined, I, A)`

`Function.call.call(Number, undefined, I, A)`

collapses into`Number(I)`

, which is naturally`I`

.- Result:
`[0, 1, ..., N-1]`

.

For a more thorough explanation, go here.

### Solution 2 (requires ES6)

It uses `Array.from`

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/from

```
Array.from(new Array(N),(val,index)=>index);
```

### Solution 3 (requires ES6)

```
Array.from(Array(N).keys());
```

#### Brief explanation

`A = new Array(N)`

returns an array with`N`

*holes*(i.e.`A = [,,,...]`

, but`A[x] = undefined`

for`x`

in`0...N-1`

).`F = (val,index)=>index`

is simply`function F (val, index) { return index; }`

`Array.from(A, F)`

returns an`N`

-element array, whose index`I`

gets the results of`F(A[I], I)`

, which is simply`I`

.- Result:
`[0, 1, ..., N-1]`

.

### One More Thing

If you actually want the sequence [1, 2, …, N], **Solution 1** becomes:

```
Array.apply(null, {length: N}).map(function(value, index){
return index + 1;
});
```

and **Solution 2**:

```
Array.from(new Array(N),(val,index)=>index+1);
```

THE JSTIPS FLASHCARDS
Learn JavaScript twice as fast. Remember forever.

Five years worth of JavaScript that you can learn in just a few weeks. This is the most complete and efficient flashcards ever created.

GET THE CARDS NOW
MEET THE NEW JSTIPS BOOK
You no longer need 10+ years of experience to get your dream job.

Use the 100 answers in this short book to boost your confidence and skills to ace the interviews at your favorite companies like Twitter, Google and Netflix.

GET THE BOOK NOW