> For the complete documentation index, see [llms.txt](https://lochiwei.gitbook.io/web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lochiwei.gitbook.io/web/js/iteration/generator/examples/list.md).

# \*list()

[JS](/web/js.md)⟩ [iteration](/web/js/iteration.md) ⟩ [custom generators](/web/js/iteration/generator/examples.md) ⟩ \*list()

{% tabs %}
{% tab title="💾 程式" %}
:floppy\_disk: replit：[list()](https://replit.com/@pegasusroe/list#list.js)

👉 compare： [\*closedRange()](/web/js/iteration/generator/examples/closedrange.md), [ClosedRange](/web/js/iteration/iterable/custom/closedrange.md)

```javascript
// ⭐️ list()  (generator function)
function* list(count, {start=0, step=1}={}){
    for(let i = 0; i < count; i++){
        yield start + step * i;
    }
}
```

💈範例：

```javascript
// ⭐️ for-of loop
for (const i of list(5)) {
    sum += i;
}                                // sum = 10

// ⭐️ generator object -> array
[...list(5)],                           // [ 0, 1, 2, 3, 4 ]
[...list(5, {start: 1})],               // [ 1, 2, 3, 4, 5 ]
[...list(5, {step: 2})],                // [ 0, 2, 4, 6, 8 ]
[...list(5, {start: 2, step: -1})],     // [ 2, 1, 0, -1, -2 ]
```

{% endtab %}

{% tab title="👥 相關" %}

* similar objects：
  * [ClosedRange](/web/js/iteration/iterable/custom/closedrange.md) - range of integers (the hard way)
  * [\*closedRange()](/web/js/iteration/generator/examples/closedrange.md) - range of integers (generator: the easy way)
  * [\*integers()](/web/js/iteration/generator/examples/integers.md) - infinite non-negative integers
  * [Sequence](/web/js/iteration/iterable/custom/sequence.md) - finite/infinite sequence of numbers.
* <mark style="color:yellow;">**import**</mark> [Iterator](/web/js/iteration/iterator/iterator.md) to <mark style="color:yellow;">**extend**</mark> built-in iterators
  {% endtab %}
  {% endtabs %}
