mirror of
https://gitea.smigz.com/smiggiddy/odin-codeprojects.git
synced 2025-05-09 20:05:20 -04:00
feat: updates 1st/2nd nums
This commit is contained in:
parent
56e16c3741
commit
c75625be29
2 changed files with 89 additions and 36 deletions
|
@ -1,13 +1,32 @@
|
|||
let firstNum = undefined;
|
||||
let secondNum = undefined;
|
||||
let operator = undefined;
|
||||
let screen = document.querySelector('.screen');
|
||||
|
||||
|
||||
const buttons = document.querySelectorAll('.btn');
|
||||
|
||||
const ops = {
|
||||
firstNum: String(),
|
||||
secondNum: String(),
|
||||
operator: undefined,
|
||||
numFlag: false,
|
||||
|
||||
updateNum: (num) => {
|
||||
if (!this.updateSecondNum){
|
||||
this.firstNum = num;
|
||||
} else {
|
||||
this.secondNum = num;
|
||||
}
|
||||
},
|
||||
toggleNumFlag: function() {
|
||||
this.numFlag = !this.numFlag
|
||||
},
|
||||
clear: function(){
|
||||
this.firstNum = Number();
|
||||
this.secondNum = Number();
|
||||
this.operator = undefined;
|
||||
this.numFlag = false;
|
||||
}
|
||||
};
|
||||
|
||||
function add(x, y) {
|
||||
return Number(x + y);
|
||||
return x + y;
|
||||
}
|
||||
|
||||
function subtract(x, y) {
|
||||
|
@ -41,21 +60,55 @@ function operate(firstNum, secondNum, operator) {
|
|||
}
|
||||
|
||||
function updateDisplay(displayValue) {
|
||||
let currentScreen = screen.textContent.trim();
|
||||
console.log(currentScreen);
|
||||
if (currentScreen.length >= 8) return;
|
||||
screen.textContent = displayValue;
|
||||
}
|
||||
|
||||
if (Number(currentScreen) === 0) {
|
||||
screen.textContent = displayValue;
|
||||
} else {
|
||||
screen.textContent += displayValue;
|
||||
function calculator(event){
|
||||
|
||||
if(event.target.dataset.ops === "") {
|
||||
// TODO handle ops for = or clear
|
||||
// TODO other ops should indicate a swap to second number
|
||||
ops.operator = event.target.value;
|
||||
//TODO fix this conditional should be if numFlag and a check if = or additional ops
|
||||
if(ops.secondNum){
|
||||
console.log(operate(ops.firstNum, ops.secondNum, ops.operator));
|
||||
console.log(ops.operator);
|
||||
} else {
|
||||
ops.toggleNumFlag();
|
||||
console.log(ops.numFlag);
|
||||
console.log('set second num');
|
||||
}
|
||||
}
|
||||
else if(event.target.dataset.num === "") {
|
||||
if(!ops.numFlag) {
|
||||
ops.firstNum += event.target.value;
|
||||
updateDisplay(ops.firstNum);
|
||||
} else {
|
||||
ops.secondNum += event.target.value;
|
||||
updateDisplay(ops.secondNum);
|
||||
}
|
||||
}
|
||||
|
||||
// if (currentScreen.length >= 8) return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
buttons.forEach(btn => {
|
||||
btn.addEventListener('click', e => {
|
||||
updateDisplay(e.target.value);
|
||||
});
|
||||
});
|
||||
btn.addEventListener('click', calculator);
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
|
||||
user imputs 1stNumber up to 8 digits or until user presses operator
|
||||
number should be stored. each input evauluating for operator
|
||||
1st number constantly updating
|
||||
operator stored
|
||||
user then enters 2nd Number up to 8 digits or until operator pressed
|
||||
if user presses equals result is stored
|
||||
if user presses operator result is saved to 1st number
|
||||
|
||||
|
||||
*/
|
Loading…
Add table
Add a link
Reference in a new issue