# list

URL: https://caijiao.org/radash/array/list
Source: docs/radash/array/list.md
Description: 创建包含特定项目的列表 给定起始值、结束值、值和步长，返回一个从起始值到结束值（按步长）的列表

创建包含特定项目的列表


## 基本用法

给定起始值、结束值、值和步长，返回一个从起始值到结束值（按步长）的列表。

接口与 `range` 相同。

_向 Python 的 `range` 功能致敬_

```ts
import { list } from 'radash'

list(3)                  // [0, 1, 2, 3]
list(0, 3)               // [0, 1, 2, 3]
list(0, 3, 'y')          // [y, y, y, y]
list(0, 3, () => 'y')    // [y, y, y, y]
list(0, 3, i => i)       // [0, 1, 2, 3]
list(0, 3, i => `y${i}`) // [y0, y1, y2, y3]
list(0, 3, obj)          // [obj, obj, obj, obj]
list(0, 6, i => i, 2)    // [0, 2, 4, 6]
```

## 函数签名

list 函数可以通过不同的参数做很多事情。

### list(size)

当给出单个参数时，它被视为 `size`。返回一个从 0 到 `size` 的值列表。

```ts
list(3) // [0, 1, 2, 3]
```

### list(start, end)

当给出两个参数时，它们被视为 `start` 和 `end`。返回一个从 `start` 到 `end` 的值列表

```ts
list(2, 6) // [2, 3, 4, 5, 6]
```

### list(start, end, value)

当给出第三个参数时，它被视为列表中使用的 `value`。如果 `value` 是一个函数，它将被调用（带有索引参数）来创建每个值。

```ts
list(2, 4, {})       // [{}, {}, {}]
list(2, 4, null)     // [null, null, null]
list(2, 4, (i) => i) // [2, 3, 4]
```

### list(start, end, value, step)

当给出第四个参数时，它被视为从 `start` 到 `end` 生成值时跳过的 `step` 大小。

```ts
list(2, 4, i => i, 2)      // [2, 4]
list(25, 100, i => i, 25)  // [25, 50, 75, 100]
```
