Foros del Web » Programando para Internet » Javascript »

¿Cómo recupero el resultado de un condicional en el mismo código?

Estas en el tema de ¿Cómo recupero el resultado de un condicional en el mismo código? en el foro de Javascript en Foros del Web. Hola gente! Estoy iniciándome en js y no logro encontrar una solución a esto Quisiera saber cómo obtener el resultado de un condicional para usarlo ...
  #1 (permalink)  
Antiguo 10/04/2016, 16:28
 
Fecha de Ingreso: junio-2009
Mensajes: 28
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta ¿Cómo recupero el resultado de un condicional en el mismo código?

Hola gente! Estoy iniciándome en js y no logro encontrar una solución a esto
Quisiera saber cómo obtener el resultado de un condicional para usarlo más adelante en el código javascript: ejemplo

HTML:
Ingrese numero 1: id#num1
Ingrese numero 2: id#num2

var num1 = document.getElementById('num1').value;
var num2 = document.getElementById('num2').value;

var num2por5 = num2 * 5;
var num2por10 = num2 * 10;
var num2por15 = num2 * 15;

if (num1 <= num2por5){
document.getElementById('resultado').value = num1 * 1.20;
}
else if (num1 > num2por5 && br <= num2por10){
document.getElementById('resultado').value = num1 * 1.30;
}
else if (num1 > num2por10 && br <= num2por15){
document.getElementById('resultado').value = num1 * 1.40;
}

En el caso que se cumpla la segunda opción, ¿cómo hago para recuperar en el código el valor o resultado de esa multiplicación para seguir usandola más adelante?
Es decir si yo quiero plantear ahora que a "resultado" sumarle 3?
Espero que se haya entendido. Más allá del código ejemplo quisiera saber si hay alguna función o si hay que plantear otra variable o función, etc?
Saludos!
  #2 (permalink)  
Antiguo 10/04/2016, 17:53
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 14 años, 2 meses
Puntos: 19
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Código Javascript:
Ver original
  1. var num1 = document.getElementById('num1').value;
  2. var num2 = document.getElementById('num2').value;
  3.  
  4. var num2por5 = num2 * 5;
  5. var num2por10 = num2 * 10;
  6. var num2por15 = num2 * 15;
  7.  
  8. var resultado = document.getElementById('resultado');
  9.  
  10. if (num1 <= num2por5){
  11.     resultado.value = num1 * 1.20;
  12. }
  13. else if (num1 > num2por5 && br <= num2por10){
  14.     resultado.value = num1 * 1.30;
  15. }
  16. else if (num1 > num2por10 && br <= num2por15){
  17.     resultado.value = num1 * 1.40;
  18. }
  19.  
  20. function modificar(valor, operacion) {
  21.     if(operacion == "+") resultado.value += valor;
  22.     if(operacion == "-") resultado.value -= valor;
  23.     if(operacion == "*") resultado.value *= valor;
  24.     if(operacion == "/") resultado.value /= valor;
  25.     // etc
  26. }
  27.  
  28. modificar(3, "+");
  #3 (permalink)  
Antiguo 10/04/2016, 18:39
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Por lo que muestras, solo tendrías que volver a acceder al elemento y obtener su valor. También puedes almacenarlo en una variable global o estática (si trabajas con objetos o funciones constructoras) y así solo accederías al valor, evitando recorrer nuevamente el DOM.

__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #4 (permalink)  
Antiguo 10/04/2016, 18:46
 
Fecha de Ingreso: junio-2009
Mensajes: 28
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Cita:
Iniciado por Fernand0 Ver Mensaje
Código Javascript:
Ver original
  1. var num1 = document.getElementById('num1').value;
  2. var num2 = document.getElementById('num2').value;
  3.  
  4. var num2por5 = num2 * 5;
  5. var num2por10 = num2 * 10;
  6. var num2por15 = num2 * 15;
  7.  
  8. var resultado = document.getElementById('resultado');
  9.  
  10. if (num1 <= num2por5){
  11.     resultado.value = num1 * 1.20;
  12. }
  13. else if (num1 > num2por5 && br <= num2por10){
  14.     resultado.value = num1 * 1.30;
  15. }
  16. else if (num1 > num2por10 && br <= num2por15){
  17.     resultado.value = num1 * 1.40;
  18. }
  19.  
  20. function modificar(valor, operacion) {
  21.     if(operacion == "+") resultado.value += valor;
  22.     if(operacion == "-") resultado.value -= valor;
  23.     if(operacion == "*") resultado.value *= valor;
  24.     if(operacion == "/") resultado.value /= valor;
  25.     // etc
  26. }
  27.  
  28. modificar(3, "+");
Hola Fernand0! Ante todo gracias por responder Estuve viendo tu código y aplicándolo a lo que necesito pero sigue dando error, en este caso undefined, y el input "resultado" poniendolo resultado.value = num1 * 1.30; ahora no funciona y aparece "NaN".
En realidad la función se ejecuta al clickear un boton con onclick="form1()".
En otro input tendría que aparecer un segundo resultado teniendo en cuenta el primer condicional: ejemplo, estos son los elementos que faltaban

function form1(){

document.getElementById('num1').value;
var num2 = document.getElementById('num2').value;

var num2por5 = num2 * 5;
var num2por10 = num2 * 10;
var num2por15 = num2 * 15;

var resultado = document.getElementById('resultado');

if (num1 <= num2por5){
resultado.value = num1 * 1.20;
}
else if (num1 > num2por5 && br <= num2por10){
resultado.value = num1 * 1.30;
}
else if (num1 > num2por10 && br <= num2por15){
resultado.value = num1 * 1.40;
}

function modificar(valor, operacion) {
if(operacion == "+") resultado.value += valor;
if(operacion == "-") resultado.value -= valor;
if(operacion == "*") resultado.value *= valor;
if(operacion == "/") resultado.value /= valor;
// etc
}
var resultado2 = document.getElementById('resultado2').value;
calculo = modificar(3, "+");
resultado2.value = calculo;

}

No sé si me explico?
  #5 (permalink)  
Antiguo 10/04/2016, 18:54
 
Fecha de Ingreso: junio-2009
Mensajes: 28
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Cita:
Iniciado por Alexis88 Ver Mensaje
Por lo que muestras, solo tendrías que volver a acceder al elemento y obtener su valor. También puedes almacenarlo en una variable global o estática (si trabajas con objetos o funciones constructoras) y así solo accederías al valor, evitando recorrer nuevamente el DOM.

Hola Alexis88! Gracias por responder. Ya intenté acceder al resultado hasta creando otro boton que ejecute posteriormente otra función cuando los primeros resultados de la 1ra función se muestren, pero no me funciona, y como estoy empezando con JS no puedo ver el error =(
  #6 (permalink)  
Antiguo 10/04/2016, 19:03
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 14 años, 2 meses
Puntos: 19
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Código Javascript:
Ver original
  1. var resultado2 = document.getElementById('resultado2');
  2.  
  3. function modificar(valor, operacion) {
  4.     if(operacion == "+") return resultado.value + valor;
  5.     else if(operacion == "-") return resultado.value - valor;
  6.     else if(operacion == "*") return resultado.value * valor;
  7.     else if(operacion == "/") return resultado.value / valor;
  8. // etc
  9. }
  10.  
  11. calculo = modificar(3, "+");
  12. resultado2.value = calculo;

No es lo mismo
Código Javascript:
Ver original
  1. var resultado2 = document.getElementById('resultado2').value;
que
Código Javascript:
Ver original
  1. var resultado2 = document.getElementById('resultado2');

Y la funcion que te habia mostrado no devolvia un valor(return ...;), directamente modificaba el valor(resultado.value = ...).
O sea que..
Código Javascript:
Ver original
  1. calculo = modificar(3, "+");
  2. resultado2.value = calculo;
no funcionaria
  #7 (permalink)  
Antiguo 10/04/2016, 20:11
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 14 años, 2 meses
Puntos: 19
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

jsFiddle

Me olvidaba de los parseInt/parseFloat de los valores de los <input type="text"/>

Creo que es eso lo que querias..

Saludos
  #8 (permalink)  
Antiguo 10/04/2016, 23:51
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.431
Antigüedad: 8 años
Puntos: 930
Respuesta: ¿Cómo recupero el resultado de un condicional en el mismo código?

Cita:
Iniciado por MajitoARG Ver Mensaje
[...] Ya intenté acceder al resultado hasta creando otro boton que ejecute posteriormente otra función cuando los primeros resultados de la 1ra función se muestren, pero no me funciona [...]
Al hacer esto:
Código Javascript:
Ver original
  1. else if (num1 > num2por5 && br <= num2por10){
  2.     document.getElementById('resultado').value = num1 * 1.30;
  3. }
Estás asignando el resultado de la multiplicación al elemento de id "resultado" como su valor, por lo que solo necesitaría acceder de la misma forma para recuperarlo:
Código Javascript:
Ver original
  1. var foo = document.getElementById('resultado').value; //El resultado previo

Si lo almacenas en una variable global, solo necesitarías acceder a ella:
Código Javascript:
Ver original
  1. var foo;
  2.  
  3. function bar(){
  4.     if (num1 <= num2por5){ 
  5.         foo = num1 * 1.20;
  6.     }
  7.     else if (num1 > num2por5 && br <= num2por10){
  8.         foo = num1 * 1.30;
  9.     }
  10.     else if (num1 > num2por10 && br <= num2por15){
  11.         foo = num1 * 1.40;
  12.     }
  13. }
  14.  
  15. bar();
  16.  
  17. //En otro bloque de instrucciones
  18. console.log(foo); //El valor almacenado

Si lo almacenas en una variable estática, propiedad de un objeto literal, tendrías que acceder a ella mediante la notación por puntos o corchetes:
Código Javascript:
Ver original
  1. var obj = {};
  2.  
  3. function bar(){
  4.     if (num1 <= num2por5){ 
  5.         obj.foo = num1 * 1.20;
  6.     }
  7.     else if (num1 > num2por5 && br <= num2por10){
  8.         obj.foo = num1 * 1.30;
  9.     }
  10.     else if (num1 > num2por10 && br <= num2por15){
  11.         obj.foo = num1 * 1.40;
  12.     }
  13. }
  14.  
  15. bar();
  16.  
  17. //En otro bloque de instrucciones
  18. console.log(obj.foo); //Notación por puntos
  19. console.log(obj["foo"]); //Notación por corchetes

Si lo almacenas en una variable estática, propiedad de una función constructora, el caso sería el mismo que el anterior:
Código Javascript:
Ver original
  1. var $ = function(){
  2.     if (!(this instanceof $)) return new $();
  3.     $.foo = null;
  4. };
  5.  
  6. function bar(){
  7.     if (num1 <= num2por5){ 
  8.         $.foo = num1 * 1.20;
  9.     }
  10.     else if (num1 > num2por5 && br <= num2por10){
  11.         $.foo = num1 * 1.30;
  12.     }
  13.     else if (num1 > num2por10 && br <= num2por15){
  14.         $.foo = num1 * 1.40;
  15.     }
  16. }
  17.  
  18. bar();
  19.  
  20. //En otro bloque de instrucciones
  21. console.log($.foo); //Notación por puntos
  22. console.log($["foo"]); //Notación por corchetes

Si lo almacenas en una cookie (en una forma simple), la situación sería similar a los dos casos anteriores:
Código Javascript:
Ver original
  1. function bar(){
  2.     if (num1 <= num2por5){ 
  3.         document.cookie = "foo=" + (num1 * 1.20);
  4.     }
  5.     else if (num1 > num2por5 && br <= num2por10){
  6.         document.cookie = "foo=" + (num1 * 1.30);
  7.     }
  8.     else if (num1 > num2por10 && br <= num2por15){
  9.         document.cookie = "foo=" + (num1 * 1.40);
  10.     }
  11. }
  12.  
  13. bar();
  14.  
  15. var galleta = document.cookie;
  16. //En otro bloque de instrucciones
  17. console.log(+galleta.substr(galleta.indexOf("foo") + 4));

Y si lo almacenas localmente, tendrías que seguir estos pasos:
Código Javascript:
Ver original
  1. localStorage.temp = localStorage.temp || JSON.stringify({foo: null});
  2.  
  3. var local = JSON.parse(localStorage.temp);
  4.  
  5. function bar(){
  6.     if (num1 <= num2por5){ 
  7.         local.foo = num1 * 1.20;
  8.     }
  9.     else if (num1 > num2por5 && br <= num2por10){
  10.         local.foo = num1 * 1.30;
  11.     }
  12.     else if (num1 > num2por10 && br <= num2por15){
  13.         local.foo = num1 * 1.40;
  14.     }
  15.     localStorage.temp = JSON.stringify(local);
  16. }
  17.  
  18. bar();
  19.  
  20. //En otro bloque de instrucciones
  21. console.log(local.foo);

Como puedes apreciar, existen muchas formas de almacenar y recuperar valores; incluso hay otras que no he mencionado porque con cualquiera de las que he mostrado es suficiente. Tú decides.

__________________
«Laissez faire et laissez passer, le monde va de lui même»

Etiquetas: condicional, html, js, resultado, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:23.