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.
Me sirvió, gracias por compartir