Si quiero devolver varios valores de una función, en una asignación, ¿necesito usar una matriz intermedia para recibir esos valores?
¿Cómo estoy acostumbrado a hacerlo en JavaScript?
let f = () => return [1, 2, 3]; let a, b, c, arr; arr = f(); a = arr[0]; b = arr[1]; c = arr[2]¿Es JavaScript como C, devolviendo la asignación al operador de primera mano, o es posible hacer algo más flexible, como en este ejemplo de Ruby (sin usar bucle):
def f return 1, 2, 3 end a, b, c = fMi motivación es simplemente la falta de legibilidad en el método de JavaScript.
Problemas
return no necesario en la función de flecha simple let f = () => [1, 2, 3]; let [a, b, c] = f(); console.log(a, b, c)Puede obtener valores de una matriz ya sea usando el index o usando la destructuring . Si hay varios valores, puede destructure y almacenarlos fácilmente en diferentes variables en una sola declaración.
let f = () => [1, 2, 3]; //Using Destructuring const [a, b, c] = f(); console.log(a, b, c); // Accessing using index const arr = f(); const m = arr[0]; const n = arr[1]; const o = arr[2]; console.log(m, n, o);Dado que está utilizando una matriz para devolver múltiples valores, puede usar implícitamente el retorno en una función o puede devolver explícitamente una matriz de ella
1) Explicitly return
let f = () => { return [1, 2, 3]; }; const [a, b, c] = f(); console.log(a, b, c); 2) Implicitly return
let f = () => [1, 2, 3]; const [a, b, c] = f(); console.log(a, b, c);