Skip to content

Project 179, Employee DataBase. Refactoring: Duplicate Code #1099

Open
@ipzk241-zhdv

Description

@ipzk241-zhdv

Duplication.

Souce file: https://github.com/ZeroOctave/ZeroOctave-Javascript-Projects/blob/main/assets/Js/employeeDatabase.js

Code fragments:

// Getting value from User-----------------------------------------------------
function readFormData() {
  var formData = {};
  formData["name"] = document.getElementById("name").value;
  formData["code"] = document.getElementById("code").value;
  formData["city"] = document.getElementById("city").value;
  formData["date"] = document.getElementById("date").value;
  formData["dep"] = document.getElementById("dep").value;
  formData["des"] = document.getElementById("des").value;
  formData["salary"] = document.getElementById("salary").value;
  //   console.log(formData);
  return formData;
}
// Reseting Form---------------------------------------------------------------------------
function resetForm() {
  document.getElementById("name").value = "";
  document.getElementById("code").value = "";
  document.getElementById("city").value = "";
  document.getElementById("date").value = "";
  document.getElementById("dep").value = "";
  document.getElementById("des").value = "";
  document.getElementById("salary").value = "";
  selectRow = null;
}
// Editing Record ----------------------------------------------------------------------------

function onEdit(td) {
  selectRow = td.parentElement.parentElement;
  document.getElementById("name").value = selectRow.cells[0].innerHTML;
  document.getElementById("code").value = selectRow.cells[1].innerHTML;
  document.getElementById("city").value = selectRow.cells[2].innerHTML;
  document.getElementById("date").value = selectRow.cells[3].innerHTML;
  document.getElementById("dep").value = selectRow.cells[4].innerHTML;
  document.getElementById("des").value = selectRow.cells[5].innerHTML;
  document.getElementById("salary").value = selectRow.cells[6].innerHTML;
}

// Update Record-----------------------------------------------------------------------------
function updateRecord(formData) {
  selectRow.cells[0].innerHTML = formData.name;
  selectRow.cells[1].innerHTML = formData.code;
  selectRow.cells[2].innerHTML = formData.city;
  selectRow.cells[3].innerHTML = formData.date;
  selectRow.cells[4].innerHTML = formData.dep;
  selectRow.cells[5].innerHTML = formData.des;
  selectRow.cells[6].innerHTML = formData.salary;
}

In many cases, you are manually specifying the individual fields and the corresponding cell indexes (or field names), which can make the code harder to maintain and extend.
We can eliminate this by using data structures (such as arrays or objects) that group related information together and avoid manual repetition. This makes the code more flexible and maintainable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions