Legge til nytt kjøp i matvarekalkulator

Til å begynne med, la oss gjøre det slik at når du klikker på knappen, legges en ny rad til i tabellen med et kjøp:

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 = 'slett';
  td.classList.add('remove');
  tr.appendChild(td);
  
  table.appendChild(tr);
});

Løsningen jeg presenterte har imidlertid tydelige problemer med kodeduplisering: faktisk skriver vi den samme koden for hver celle.

Det ville være hensiktsmessig å ha en funksjon for å opprette en tabellcelle. La denne funksjonen ta en referanse til tabellraden som første parameter, teksten i tabellcellen som andre parameter, og navnet på CSS-klassen til cellen som tredje:

javascriptfunction createCell(tr, value, name) {
  
}

Med en slik funksjon kunne vi omskrevet koden ovenfor som følger:

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, 'slett', 'remove');
  
  table.appendChild(tr);
});
Задание 1

Implementer funksjonen createCell som jeg beskrev.

Задание 2

Kopier koden min for å legge til et nytt kjøp. Test å legge til et nytt kjøp i tabellen.

Задание 3

Modifiser funksjonen createCell slik at den returnerer den opprettede tabellcellen via return.