Prosljeđivanje callback funkcije za rad sa DOM-om u JavaScript-u

Pretpostavimo da imamo određenu grupu DOM elemenata:

html<p class="elem">1</p>
<p class="elem">2</p>
<p class="elem">3</p>
<p class="elem">4</p>
<p class="elem">5</p>

Napravimo funkciju forEach koja će kao prvi parametar primati selektor grupe elemenata, a kao drugi parametar - funkciju-callback, koja će se primeniti jedan po jedan na svaki od pronađenih elemenata:

javascriptforEach('.elem', function() {
  // funkcija će se primeniti na svaki element
});

Neka elementi koji odgovaraju selektoru jedan po jedan dospeju u prvi parametar callback funkcije:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // ispisaće jedan po jedan pronađene elemente
});

Hajde da pomoću naše funkcije pronađemo sve elemente sa klasom elem i za svaki pronađeni element primenimo callback, koji će kvadrirati tekst svakog elementa:

javascriptforEach('.elem', function(elem) {
  elem.textContent = elem.textContent ** 2;
});

Sada hajde da napišemo implementaciju naše zamišljene funkcije forEach:

javascriptfunction forEach(selector, func) {
  let elems = document.querySelectorAll(selector);
  
  for (let elem of elems) {
    func(elem);
  }
}
Задание 1

Dat je nekoliko pasusa. Pomoću kreirane naše funkcije forEach za svaki pasus dodajte na kraj njegovog teksta uzvičnik.