Saltar al contenido

¿Devolver varios valores en JavaScript?

Solución:

No, pero puede devolver una matriz que contenga sus valores:

function getValues() {
    return [getFirstValue(), getSecondValue()];
}

Entonces puedes acceder a ellos así:

var values = getValues();
var first = values[0];
var second = values[1];

Con la última sintaxis de ECMAScript 6 *, también puede desestructurar el valor de retorno de forma más intuitiva:

const [first, second] = getValues();

Si desea poner “etiquetas” en cada uno de los valores devueltos (más fácil de mantener), puede devolver un objeto:

function getValues() {
    return {
        first: getFirstValue(),
        second: getSecondValue(),
    };
}

Y para acceder a ellos:

var values = getValues();
var first = values.first;
var second = values.second;

O con sintaxis ES6:

const {first, second} = getValues();

* Consulte esta tabla para conocer la compatibilidad del navegador. Básicamente, todos los navegadores modernos, aparte de IE, admiten esta sintaxis, pero puede compilar el código ES6 en JavaScript compatible con IE en el momento de la compilación con herramientas como Babel.

Puede hacer esto desde ECMAScript 6 en adelante utilizando matrices y “asignaciones de desestructuración”. Tenga en cuenta que estos no están disponibles en versiones anteriores de Javascript (es decir, ni con ECMAScript tercera ni quinta ediciones).

Le permite asignar a 1+ variables simultáneamente:

var [x, y] = [1, 2];
x; // 1
y; // 2

// or

[x, y] = (function(){ return [3, 4]; })();
x; // 3
y; // 4

También puede usar la desestructuración de objetos combinada con la abreviatura de valor de propiedad para nombrar los valores de retorno en un objeto y seleccionar los que desee:

let {baz, foo} = (function(){ return {foo: 3, bar: 500, baz: 40} })();
baz; // 40
foo; // 3

Y, por cierto, no se deje engañar por el hecho de que ECMAScript le permite return 1, 2, .... Lo que realmente sucede allí no es lo que podría parecer. Una expresión en declaración de retorno – 1, 2, 3 – no es más que un operador de coma aplicado a literales numéricos (1 , 2, y 3) secuencialmente, que eventualmente evalúa el valor de su última expresión – 3. Es por eso return 1, 2, 3 es funcionalmente idéntico a nada más que return 3.

return 1, 2, 3;
// becomes
return 2, 3;
// becomes
return 3;

Solo devuelve un objeto literal

function newCodes(){
    var dCodes = fg.codecsCodes.rs; // Linked ICDs  
    var dCodes2 = fg.codecsCodes2.rs; //Linked CPTs       
    return {
        dCodes: dCodes, 
        dCodes2: dCodes2
    };  
}


var result = newCodes();
alert(result.dCodes);
alert(result.dCodes2);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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