Open
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()
})
})