piątek,
JS: Metoda forEach
Jedną z wielu metod iteracji dostępnych w nowoczesnym JavaScript jest pętla 'forEach', często używana ze względu na czytelność kodu i wygodę. Ściśle ujmując, nie jest to pętla w tradycyjnym znaczeniu, ale metoda wbudowana w obiekty Array umożliwiająca wykonywanie funkcji na każdym elemencie tablicy. W niektórych przypadkach 'forEach' będzie mniej wydajna niż klasyczne rozwiązania, jednak najczęściej zapewni lepszą czytelność kodu.
Sposób użycia
Metoda forEach
jako argument przyjmuje funkcję, która zostanie wykonana dla każdego elementu tablicy. Ta funkcja może przyjmować trzy argumenty.
- Aktualny element: Element tablicy, na którym aktualnie wykonuje się pętla.
- Indeks (opcjonalny): Indeks aktualnego elementu w tablicy.
- Tablica* (opcjonalny): Referencja do tablicy, na której wywoływana jest metoda
forEach
.
Prosty przykład
const tablica = [1, 2, 3, 4, 5];
tablica.forEach(function(element) {
console.log(element);
});
W tym przykładzie dla każdego elementu tablicy tablica
wyświetlana jest jego wartość.
Dostęp do indeksu
const tablica = ['a', 'b', 'c'];
tablica.forEach(function(element, indeks) {
console.log(indeks + ': ' + element);
});
W tym przykładzie oprócz wartości elementu wyświetlany jest również jego indeks.
Użycie funkcji strzałkowej
W nowoczesnym JavaScript często stosuje się tzw. arrow functions (funkcje strzałkowe), które pozwalają na zwięzlejszy zapis.
const tablica = [10, 20, 30];
tablica.forEach(element => console.log(element));
Przykład ze wskazaniem tablicy
const tablica = [100, 200, 300];
tablica.forEach((element, indeks, arr) => {
console.log('Element: ' + element + ', Indeks: ' + indeks + ', Tablica: ' + arr);
});
W tym przypadku, oprócz wartości i indeksu elementu, dostępna jest również cała tablica.
Zalety i wady forEach
Zalety
- Czytelność: Kod jest zazwyczaj krótszy i bardziej zrozumiały.
- Unikanie efektów ubocznych:
forEach
nie modyfikuje tablicy, na której jest wywoływana.
Wady
- Brak możliwości przerwania: Pętli
forEach
nie można opuścić przedwcześnie (np. jak w przypadkubreak
w pętlifor
). - Wydajność: W niektórych przypadkach, zwłaszcza przy dużych tablicach, klasyczna pętla
for
może być szybsza.