Добавяне на нова покупка в калкулатор за продукти

Като начало нека направим така, че при натискане на бутона в таблицата да се добавя нов ред с покупка:

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 = 'изтрий';
  td.classList.add('remove');
  tr.appendChild(td);
  
  table.appendChild(tr);
});

Представеното от мен решение обаче има явни проблеми с дублиране на код: всъщност за всяка клетка пишем един и същи код.

Би било уместно да имаме някаква функция за създаване на таблична клетка. Нека тази функция приема първи параметър референция към ред от таблицата, втори параметър - текст на клетката от таблицата, а трети - име на CSS клас на клетката:

javascriptfunction createCell(tr, value, name) {
  
}

Имайки такава функция, бихме могли да пренапишем горния код по следния начин:

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

Реализирайте описаната от мен функция createCell.

Задание 2

Копирайте моя код за добавяне на нова покупка. Тествайте добавяне на нова покупка в таблицата.

Задание 3

Модифицирайте функцията createCell така, че да връща чрез return създадената таблична клетка.