• #Aplicaciones
  • #Bases de datos
  • #Dispositivos
  • #Hardware
  • #Inversión
  • #Marketing
  • #Programacion
  • #Sistemas
  • Cómo devolver múltiples valores en JavaScript

    GuíasJavascriptProgramacion

    Antes de comenzar este tutorial dejaremos una cosa clara, y es que no es posible que una función o un método devuelvan más de un valor. Sin embargo, sí es posible simular este comportamiento, que es lo que veremos a continuación.

    Cuando invocas una función en JavaScript, solamente podrás devolver un único valor mediante la sentencia return, tal y como podemos ver en este ejemplo:

    const getNombre = () => {
      return 'Edu';
    }
    
    const getApellido = () => {
      return 'Lazaro';
    }

    Pero ahora imagínate que quisiésemos devolver dos valores, que se corresponderían con los que hemos devuelto en las funciones de nuestro ejemplo. Para ello podemos hacer dos cosas; devolver un array o devolver un objeto.

    Devolviendo un Array

    En el ejemplo que ves a continuación definimos la función getPersona() y devolvemos un array con dos valores:

    const getPersona = () => {
      return ['Edu', 'Lazaro'];
    }

    Podemos obtener el resultado de la función en un array normal o asignarlo a dos variables mediante destructuring, tal y como puedes ver en este ejemplo:

    const [nombre, apellido] = getPersona();

    De esta forma, las constantes nombre y apellido contendrán los valores devueltos por la función. En este caso, has de saber que no importa el nombre de las constantes a la hora de asignarles el valor devuelto por la función getPersona(), sino que lo que importa es su orden.

    Devolviendo un Objeto

    Otra forma de simular que devolvemos varios valores desde una función o desde un método consiste en devolver un objeto desde la función:

    const getPersona = () => {
      return {
        nombre: 'Edu',
        apellido: 'Lazaro'
      };
    }

    Podemos obtener el resultado de la función en un objeto normal o asignarlo a dos variables mediante destructuring de objetos, tal y como puedes ver en este ejemplo:

    const { nombre, apellido } = getPersona();

    En este caso, el orden de las propiedades nombre y apellido del objeto { nombre, apellido } que recibe los valores no importa, sino que lo que importa es su nombre. Esto es debido a que, mientras que en los arrays los nombres de las propiedades son índices numéricos, en el caso de los objetos les estamos dando un nombre a las propiedades.

    Los arrays en JavaScript no son más que objetos cuyas propiedades son índices numéricos fijos e incrementales.

    Y esto ha sido todo.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

    https://twitter.com/neeonez