//Ahora la lógica de la calculadora
const Calculator = function(){ //Una función a modo de objeto
this.evaluate = string =>{
var a = string.split(' ');
var index = 0;
console.log(a)
if(a.length > 1){
while(true){
if(this.findIndexOperador(a) != 0)
index = this.findIndexOperador(a);
else
index = this.findIndexOperadorSumRest(a);
var antIndex = index -1; //encontrado el operador, evaluar el numero a la izquierda
var aop = a[antIndex]
var o = this.findOperador(index,a);// encuentra el operador en la cadena
var ope = this.resolveOp(o,aop,a[index+1])
a.splice(antIndex,3)
a.splice(antIndex,0,ope)
console.log(a)
if(a.length == 1)
break;
}
return a[0];
}else{
return string;
}
}
this.findOperador = (index,a) => {
return a[index];
}
this.resolveOp = (el,a,b) =>{
var operacion = 0;
a = parseFloat(a);
b = parseFloat(b);
switch(el){
case '*':
operacion = a * b;
break;
case '/':
operacion = a / b;
break;
case '+':
operacion = a + b;
break;
case '-':
operacion = a - b;
break;
}
return operacion;
}
this.findIndexOperador =(a) =>{
var index = 0;
for(var i= 0; i < a.length; i++){
if(a[i] === '*' || a[i] === '/' ){
index = i;
break;
}
}
return index;
}
this.findIndexOperadorSumRest =(a) =>{
var index = 0;
for(var i= 0; i < a.length; i++){
if(a[i] === '+' || a[i] === '-'){
index = i;
break;
}
}
return index;
}
};
let btn=document.getElementById('calc');
function calcular(){
let view = document.getElementById('view');
let calc = new Calculator();
let txt = document.getElementById('calculator');
view.innerHTML = calc.evaluate(txt.value)
}
btn.addEventListener('click',calcular,false);
/fin de calculator.js
<!--index.html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>calculadora inline</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<!-- este script javascript paso el test de una kata
publicada en codewars y que me sorprendio haber resolvido-->
<center>
<h2 id="title">Calculadora inline</h2>
<input type="text" name="calculator" id="calculator" value="">
<!--poner algunos estilos al lugar donde se
visualiza el resultado--->
<div id="view" style="background: darkgrey;
color: chartreuse;
font-size: 1.789rem;
width: 35%">
</div>
<button id="calc">calcular</button>
</center>
<script src="calculator.js"></script>
</body>
</html><!-- vean mi video para muestra en : https://www.youtube.com/watch?v=FwHZVlhbElU-->