Pridanie nového nákupu v kalkulačke potravín

Na začiatok urobme to, aby sa po kliknutí na tlačidlo do tabuľky pridal nový riadok s nákupom:

javascriptadd.addEventListener('click', function() {
  let tr = document.createElement('tr');
  
  let td;
  
  td = document.createElement('td');
  td.textContent = name.value;
  td.classList.add('name');
  tr.appendChild(td);
  
  td = document.createElement('td');
  td.textContent = price.value;
  td.classList.add('price');
  tr.appendChild(td);
  
  td = document.createElement('td');
  td.textContent = amount.value;
  td.classList.add('amount');
  tr.appendChild(td);
  
  td = document.createElement('td');
  td.textContent = price.value * amount.value;
  td.classList.add('cost');
  tr.appendChild(td);
  
  td = document.createElement('td');
  td.textContent = 'odstrániť';
  td.classList.add('remove');
  tr.appendChild(td);
  
  table.appendChild(tr);
});

Uvedené riešenie však má zjavné problémy s duplikáciou kódu: v podstate pre každú bunku píšeme rovnaký kód.

Bolo by vhodné mať nejakú funkciu pre vytvorenie bunky tabuľky. Nech táto funkcia prvým parametrom prijíma odkaz na riadok tabuľky, druhým parametrom - text bunky tabuľky, a tretím - názov CSS triedy bunky:

javascriptfunction createCell(tr, value, name) {
  
}

S takouto funkciou by sme mohli prepísať vyššie uvedený kód nasledovne:

javascriptadd.addEventListener('click', function() {
  let tr = document.createElement('tr');
  
  createCell(tr, name.value, 'name');
  createCell(tr, price.value, 'price');
  createCell(tr, amount.value, 'amount');
  createCell(tr, price.value * amount.value, 'cost');
  createCell(tr, 'odstrániť', 'remove');
  
  table.appendChild(tr);
});
Задание 1

Implementujte opísanú funkciu createCell.

Задание 2

Skopírujte môj kód pre pridanie nového nákupu. Otestujte pridanie nového nákupu do tabuľky.

Задание 3

Upravte funkciu createCell tak, aby vracala cez return vytvorenú bunku tabuľky.