Autor Tema: JavaScript diferencia entre función que devuelve con return y la que no CU01122E  (Leído 2098 veces)

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
EJERCICIO 1 de la entrega CU01122E del tutorial de programación web con JavaScript desde cero:

Código: [Seleccionar]
function obtenerImporteConImpuestos(importe_sin_impuestos,tipo_producto)
  {

  var msg='Importe sin impuestos: '+importe_sin_impuestos+'. ';
  var imp,res;
   switch(tipo_producto){
     case 1:
       imp=importe_sin_impuestos*0.21;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
       break;
    case 2:
       imp=importe_sin_impuestos*0.10;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
      break;
    case 3:
       imp=importe_sin_impuestos*0.5;
       res=parseInt(importe_sin_impuestos)+parseInt(imp);
       alert(msg+'Importe con el impuesto: '+res);
      break;
   }
   return res;
  }

EJERCICIO 2:

Código: [Seleccionar]
function obtenerImporteConImpuestos2(importe_sin_impuestos){
    var tipo_producto=0;
    var resultado=[];
    var msg;
    if (tipo_producto==1) {
      msg=alert(resultado[1]=importe_sin_impuestos*1.21);
      return msg;
    }
    else if (tipo_producto==2){
      msg=alert(resultado[2]=importe_sin_impuestos*1.10);
      return resultado[2];
    }else if (tipo_producto==3){
      msg=alert(resultado[3]=importe_sin_impuestos*1.05);
    }else {
      msg=alert(resultado[0]);
    }

  }

Archivo html

Código: [Seleccionar]
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Entrega 22</title>
    <script type="text/javascript" src="Ejercicio22.js">
    </script>
  </head>
  <body>
    <div> <p>Aquí un párrafo de texto situado antes de la imagen, dentro de un div contenedor</p>

    <img onclick="obtenerImporteConImpuestos(300000,2)" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++"
    title="Notepad++, un útil editor de texto">
    <p onclick ="alert('Alerta JavaScript')" style="color: #D2691E;">Aquí otro párrafo de texto.
      JavaScript es un lenguaje utilizado para dotar de efectos dinámicos a las páginas web. </p>
    <img onclick="obtenerImporteConImpuestos2(100)" src="http://i.imgur.com/afC0L.jpg" alt="Notepad++"
        title="Notepad++, un útil editor de texto">
    </div>
      </body>
</html>
« Última modificación: 21 de Octubre 2017, 18:52 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para la función obtenerImporteConImpuestos2 el ejercicio pedía que la función devolviera un array, y en tu caso no estás devolviendo un array

Por un lado pones return msg; que devuelve una función alert, y por otro return resultado[2] que tampoco es un array sino un elemento de un array, y en otro caso haces por ejemplo msg=alert(resultado[0]); de modo que la función no devuelve nada ya que no hay un return.

Puede verse una solución correcta en https://www.aprenderaprogramar.com/foros/index.php?topic=3259.0

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".