Cómo devolver múltiples valores en JavaScript

Javascript

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.


Avatar de Edu Lazaro

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

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

1 comentario en “Cómo devolver múltiples valores en JavaScript

Responder a Hans Cancelar la respuesta

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

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”