-
-
Notifications
You must be signed in to change notification settings - Fork 457
Open
Labels
duplicateThis issue or pull request already existsThis issue or pull request already exists
Description
Duplicate code.
The multiple else if checks on button.classList.contains() are repetitive, and this pattern can be refactored using a mapping approach. This would make code more maintainable and extensible.
Source file: https://github.com/ZeroOctave/ZeroOctave-Javascript-Projects/blob/main/assets/Js/Calculator.js
Code fragment:
operationButtons.forEach(button => {
button.addEventListener('click', () => {
if (button.classList.contains("special")) {
if (button.classList.contains("pie-button")) {
calculator.specialOperation(1)
}
else if (button.classList.contains("e-button")) {
calculator.specialOperation(2)
}
else if (button.classList.contains("square")) {
calculator.specialOperation(3)
}
else if (button.classList.contains("pow")) {
calculator.specialOperation(4)
}
else if (button.classList.contains("squareRoot")) {
calculator.specialOperation(5)
}
else if (button.classList.contains("logBase10")) {
calculator.specialOperation(6)
}
}
else calculator.chooseOperation(button.innerText)
calculator.updateDisplay()
})
})
Metadata
Metadata
Assignees
Labels
duplicateThis issue or pull request already existsThis issue or pull request already exists