JavaScript Multiple Return Values

Return multiple values from a function with an array and an object in a single statement.

dot net perls

Multiple return values. Some functions return just one value. They return a string. They return an integer. But others return many things—an assortment of values.

Return notes. With an array, or an object, we can return multiple values. We can return any number of values from a function, but special syntax is needed.ArrayObject

Array example. An array can hold any number of elements. We can return an array from a function. We put our multiple return values in the array.
Function: The importantValues function returns an array of 3 values. These could be computed variables or constants.
JavaScript program that returns multiple values function importantValues() { "use strict"; // Return 3 values in an array. return [1, 2, "cat"]; } var result = importantValues(); console.log("RETURN VALUE 1: " + result[0]); console.log("RETURN VALUE 2: " + result[1]); console.log("RETURN VALUE 2: " + result[2]); Output RETURN VALUE 1: 1 RETURN VALUE 2: 2 RETURN VALUE 2: cat

Object. With an object we can reference return values by name. This approach may be clearer to read. The return values are labeled.
Tip: In the V8 engine a special optimization is used to accelerate property lookups, so this approach is blazingly fast.
JavaScript program that sets properties on object function petValues() { "use strict"; // Return multiple values in an object. return {animal: "cat", size: 100, color: "orange", name: "fluffy"}; } var pet = petValues(); console.log("RETURN VALUE: " + pet.animal); console.log("RETURN VALUE: " + pet.size); Output RETURN VALUE: cat RETURN VALUE: 100

Strict mode. As a reminder, the "use strict" directive can prevent errors in functions. It can help us avoid "sloppy" global variable creation in functions.

A summary. JavaScript is a powerful language—it can handle complex patterns like multiple return values. We can use arrays or objects.


© 2007-2020 sam allen. send bug reports to info@dotnetperls.com.