제품 계산기에 새 구매 항목 추가

먼저 버튼을 클릭하면 테이블에 새 구매 항목 행이 추가되도록 만들어 봅시다:

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을 통해 반환하도록 수정하세요.