Let’s say we want to create a list of numbers from [0..9].

A simple approach would be to use a `for`

loop

```
const numbers = []
for (let i = 0; i < 10; i++) {
numbers.push(i)
}
// numbers => [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
```

Another approach is to use the `Array.prototype.keys()`

method which returns the index of each element

```
const numbers = [...Array(10).keys()]
// numbers => [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
```

Perhaps the most elegant solution is to use `Array.from()`

```
const numbers = Array.from({ length: 10 }, (_, i) => i)
// numbers => [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
```

`Array.from()`

takes an array-like object as its first argument and a map function that will be applied to each element. In this case, we pass an object with a `length`

property and then we take just return the index from the map function.

If we wanted to start our list at 1 instead, then we can do this

```
Array.from({ length: 10 }, (_, i) => i + 1)
// numbers => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
```

Or, more generally, if we wanted include 10 numbers starting from a certain number

```
const startingNumber = 3
Array.from({length: 10}, (_, i) => i + startingNumber)
// numbers => [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
```