-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
78 lines (67 loc) · 2.47 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const $botones = document.querySelector("#miBtn");
const $display = document.querySelector(".display")
$display.textContent = "0";
let operandoNum = false; // esta variable es para que cuando se digite un operador la pantalla se limpie y el operador que en pantalla reflejado
let num1;
let operando;
const calcular = () => {
$botones.addEventListener("click", e => {
if (!$botones) return
const el = e.target;
const b = el.dataset;
if (b.btn) {
numero(b.btn);
}
else if (b.operador) {
operador(el, b.operador);// se recibe el valor del num pulsado y el valor del operador
}
else if (b.resultado) {
result(b.resultado);
//console.log(b.resultado)
}
})
};
calcular();
function numero(a) {
if ($display.textContent === "0" || operandoNum === true) { // aqui me aseguro de que el valor principal en pantalla sea 0
$display.textContent = a // al pulsar en un número este se agrega a la pantalla
} else {
$display.textContent += a // aqui contateno cada número
}
operandoNum = false; // operando vuelve a false por que si no me permite concatenar los numeros despues de digitar el operador
}
function operador(el, operador) { // recibo los parametros de la linea 15
operandoNum = true;
num1 = Number($display.textContent) // recibo el primer valor y lo guardo
operando = operador // recibo el valor del operador pulsado en pantalla
$display.textContent = el.textContent // aqui cambio el valor en pantalla por el operador pulsado
}
function result(resultado) {
const getResult = (num1, operando) => {
const num2 = Number($display.textContent);
console.log(num2);
switch (operando) {
case "suma":
$display.textContent = num1 + num2;
break;
case "resta":
$display.textContent = num1 - num2;
break;
case "multiplica":
$display.textContent = num1 *+ num2;
break;
case "divide":
$display.textContent = num1 / num2;
break;
default:
break;
}
}
if (resultado === "ac") {
$display.textContent = "0";
console.log("aqui");
} else {
getResult(num1, operando)
}
operandoNum = true // para que despues de darle al btn de igualdad este reinicie los valores de números pulsados
}