La sencillez de este programa radica en el uso de la función eval() de javascript
var numerosChildren = document.getElementById('numeros').children;
var operadoresChildren = document.getElementById('operadores').children;
var teclas=[];
for(var i=0; i< numerosChildren .length; i++){
teclas[i]=numerosChildren[i].getAttribute("title");
}
for(var i=0; i< operadoresChildren .length; i++){
teclas.push(operadoresChildren[i].getAttribute("title"));
}
var result = document.getElementById("result");
var total= document.getElementById("total");
var escribe = document.getElementById("escribe");
function crearNumeros(num){
switch(num) {
case '<-':
var res = result.innerText.substring(-3,result.innerText.length-1);
result.innerText = res;
break;
case 'Reset':
result.innerHTML=("");
break;
case '=':
escribe.innerText = escribe.innerText + num;
result.innerText = total.innerText;
break;
default:
operar(num);
}
};
function operar(num){
escribe.innerHTML = result.innerHTML + num;
var addResultado = result.innerHTML = result.innerHTML + num;
if (eval(addResultado) != "" || eval(addResultado) ==0 ) {
result.innerHTML = addResultado;
total.innerHTML=(eval(addResultado));
}
}
document.onkeypress = function (e) {
var letra = String.fromCharCode(e.keyCode);
switch(e.keyCode) {
case 46:
crearNumeros('<-'); // Supr
break;
case 13:
crearNumeros('=');// Enter =
break;
default: if(teclas.includes(letra)){crearNumeros(letra);}
};
}
