--- title: Each blocks --- If you need to loop over lists of data, use an `each` block: ```svelte <ul> {#each cats as cat} <li> <a target="_blank" href="https://www.youtube.com/watch?v={cat.id}" rel="noreferrer"> {cat.name} </a> </li> {/each} </ul> ``` > The expression (`cats`, in this case) can be any array or array-like object (i.e. it has a `length` property). You can loop over generic iterables with `each [...iterable]`. You can get the current _index_ as a second argument, like so: ```svelte {#each cats as cat, i} <li> <a target="_blank" href="https://www.youtube.com/watch?v={cat.id}" rel="noreferrer"> {i + 1}: {cat.name} </a> </li> {/each} ``` If you prefer, you can use destructuring — `each cats as { id, name }` — and replace `cat.id` and `cat.name` with `id` and `name`.