Código de JavaScript - Calculadore inline

Imágen de perfil

Calculadore inlinegráfica de visualizaciones


JavaScript

Publicado el 18 de Septiembre del 2022 por Oscar (8 códigos)
909 visualizaciones desde el 18 de Septiembre del 2022
Este codigo en javascript permite sacar una cuenta con los operadores basicos, poniendo todos ellos en la misma cadena, siempre dejando un espacio como restricción. Este código esta basado en una kata de codewars que resolvi y que paso una test enorme de bastantisimos operadores

Requerimientos

Un navegador que pueda ejecutar javascript. Dar un espacio en tre cada numero y operador, sino quedara colgado el navegador

1.0

Publicado el 18 de Septiembre del 2022gráfica de visualizaciones de la versión: 1.0
910 visualizaciones desde el 18 de Septiembre del 2022
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

https://www.youtube.com/watch?v=FwHZVlhbElU
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
//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-->



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7285