Пренос на callback функција за работа со DOM во JavaScript

Нека имаме одредена група на DOM елементи:

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>

Да ја направиме функцијата forEach, која како прв параметар ќе прима селектор на група елементи, а како втор параметар - callback функција, која ќе се примени последователно на секој од пронајдените елементи:

javascriptforEach('.elem', function() {
  // функцијата ќе се примени на секој елемент
});

Нека елементите, кои одговараат на селекторот, последователно се пренесуваат во првиот параметар на callback функцијата:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // ќе ги прикаже последователно пронајдените елементи
});

Да ги најдеме сите елементи со класата elem користејќи ја нашата функција и за секој пронајден елемент да примениме callback, кој ќе го подигне на квадрат текстот на секој елемент:

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

Сега да ја напишеме имплементацијата на замислената функција forEach:

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

Дадени се параграфи. Користејќи ја креираната наша функција forEach за секој параграф додајте на крајот од неговиот текст извичник.