Pętle w JavaScript
1. Wprowadzenie
Pętla (ang. loop) to struktura kontrolna, która pozwala wielokrotnie wykonywać ten sam blok kodu, dopóki spełniony jest określony warunek.
Pętle są niezwykle przydatne, gdy chcemy: * powtarzać operacje określoną liczbę razy, * iterować po elementach tablicy lub obiektu, * wykonywać kod, dopóki warunek jest prawdziwy, * przetwarzać dane w kolekcjach.
JavaScript oferuje kilka typów pętli, z których każda ma swoje zastosowanie.
2. Typy pętli w JavaScript
for– klasyczna pętla z licznikiemwhile– pętla z warunkiem na początkudo...while– pętla z warunkiem na końcufor...of– iteracja po wartościach (tablice, stringi)for...in– iteracja po kluczach (obiekty, tablice)forEach()– metoda tablicowa (nie jest pętlą, ale służy do iteracji)
3. Pętla for
Klasyczna pętla z licznikiem – najczęściej używana, gdy znamy liczbę iteracji.
Składnia:
Elementy pętli:
| Element | Opis |
|---|---|
inicjalizacja |
Tworzenie zmiennej licznika (np. let i = 0) |
warunek |
Warunek kontynuacji pętli (np. i < 5) |
inkrementacja |
Zmiana licznika po każdej iteracji (np. i++) |
Przykład podstawowy:
Iteracja po tablicy:
Pętla wsteczna:
4. Pętla while
Wykonuje kod dopóki warunek jest prawdziwy. Warunek sprawdzany jest przed każdą iteracją.
Składnia:
Przykład:
Uwaga – pętla nieskończona:
Jeśli warunek nigdy nie stanie się fałszywy, pętla będzie działać w nieskończoność:
5. Pętla do...while
Podobna do while, ale warunek sprawdzany jest po wykonaniu kodu.
Oznacza to, że kod wykona się przynajmniej raz, nawet jeśli warunek jest od razu fałszywy.
Składnia:
Przykład:
Różnica między while a do...while:
6. Pętla for...of
Służy do iteracji po wartościach w kolekcjach takich jak tablice, stringi, mapy, sety.
Składnia:
Przykład z tablicą:
Przykład z stringiem:
Zalety for...of:
* Prostsza składnia niż for
* Nie wymaga licznika
* Czytelniejsza w przypadku tablic
7. Pętla for...in
Służy do iteracji po kluczach (właściwościach) obiektu lub indeksach tablicy.
Składnia:
Przykład z obiektem:
Przykład z tablicą (niezalecane):
Uwaga: Dla tablic lepiej używać for...of lub forEach().
8. Porównanie pętli
| Pętla | Zastosowanie | Przykład |
|---|---|---|
for |
Znana liczba iteracji | for (let i = 0; i < 10; i++) |
while |
Warunek na początku | while (x < 10) |
do...while |
Wykonanie przynajmniej raz | do { ... } while (x < 10) |
for...of |
Iteracja po wartościach (tablice) | for (let item of array) |
for...in |
Iteracja po kluczach (obiekty) | for (let key in object) |
9. Słowa kluczowe break i continue
9.1 break – przerwanie pętli
Natychmiast kończy działanie pętli.
9.2 continue – pominięcie iteracji
Pomija bieżącą iterację i przechodzi do następnej.
10. Zagnieżdżone pętle
Pętle można zagnieżdżać – umieszczać jedną pętlę wewnątrz drugiej.
Przykład – tablica dwuwymiarowa:
Uwaga: Zagnieżdżone pętle mogą wpływać na wydajność – unikaj zbyt głębokich zagnieżdżeń.
11. Pętla forEach() (metoda tablicowa)
forEach() to metoda tablicy, która wykonuje funkcję dla każdego elementu.
Składnia:
Przykład:
Uwaga: forEach() nie pozwala na użycie break ani continue.
12. Kiedy używać której pętli?
| Sytuacja | Rekomendowana pętla |
|---|---|
| Znana liczba iteracji | for |
| Iteracja po tablicy | for...of, forEach() |
| Iteracja po obiekcie | for...in |
| Warunek przed iteracją | while |
| Kod musi wykonać się przynajmniej raz | do...while |
| Transformacja tablicy | map(), filter() |
13. Przykłady praktyczne
Suma elementów tablicy:
Szukanie elementu:
Wypisanie liczb parzystych:
14. Pułapki i częste błędy
Nieskończona pętla:
Modyfikacja tablicy podczas iteracji:
Używanie for...in dla tablic:
Rozwiązanie: Używaj for...of lub forEach() dla tablic.
15. Dobre praktyki
- Używaj
for...ofzamiast klasycznej pętlifordla tablic (czytelniejsze) - Używaj
for...intylko dla obiektów, nie dla tablic - Unikaj modyfikowania kolekcji podczas iteracji
- Zawsze pamiętaj o warunku zakończenia pętli
- Preferuj metody funkcyjne (
map,filter,reduce) zamiast pętli, gdy to możliwe - Używaj czytelnych nazw zmiennych (np.
fruitzamiastx)
16. Podsumowanie
| Pętla | Kiedy używać | Przykład |
|---|---|---|
for |
Znana liczba iteracji | for (let i = 0; i < 10; i++) |
while |
Warunek przed iteracją | while (x < 100) |
do...while |
Wykonanie przynajmniej raz | do { ... } while (x < 10) |
for...of |
Iteracja po wartościach (tablice, stringi) | for (let item of array) |
for...in |
Iteracja po kluczach (obiekty) | for (let key in object) |
forEach() |
Metoda tablicowa | array.forEach(item => ...) |
17. Wnioski
- Pętle są fundamentalnym narzędziem do powtarzania operacji w JavaScript.
- Każdy typ pętli ma swoje zastosowanie – wybór zależy od sytuacji.
for...ofto nowoczesny i czytelny sposób iteracji po tablicach.- Zawsze pamiętaj o warunku zakończenia, aby uniknąć nieskończonych pętli.
- W nowoczesnym JavaScript często metody funkcyjne (
map,filter) są bardziej eleganckie niż tradycyjne pętle.
Podsumowanie praktyczne:
Opanowanie pętli jest kluczowe dla każdego programisty. Używaj for...of dla tablic, for...in dla obiektów, a while gdy nie znasz liczby iteracji. Zawsze dbaj o czytelność i wydajność kodu.