通常JavaScriptの関数の戻り値は1つですが、
以下のようにすれば複数値返すこともできます。
方法1)配列で返す
連想配列を使えば複数の値を返すことができます。
例)引数に渡された数値の3倍、6倍、9倍の値を返す
1 2 3 4 5 6 7 |
function get369(val){ var obj = new Object(); obj.val3 = val * 3; obj.val6 = val * 6; obj.val9 = val * 9; return obj; } |
※数値チェック等は省略しています。
こんな感じで値を取得できます。
1 2 3 4 |
var a = get369(2); document.write(a.val3); document.write(a.val6); document.write(a.val9); |
- (結果)
- 6 12 18
解説
- 連想配列はキーと値のセットが複数定義できるので、それを使って実現できます。
- 事前にキーが分かっている必要があります。
- 連想配列には異なる型が混ざっていてもOKです。
方法2)ECMAScript6から導入された方法で返す
ECMAScript6ではfunctionの複数戻り値に対応しました。
例)引数に渡された数値の3倍、6倍、9倍の値を返す(ECMAScript6形式)
1 2 3 4 5 6 |
function get369(val) { var a = val * 3; var b = val * 6; var c = val * 9; return [a, b, c]; } |
こんな感じで値を取得できます。
1 2 3 4 |
var [a, b, c] = get369(2); document.write(a); document.write(b); document.write(c); |
- (結果)
- 6 12 18
解説
- 戻り値に異なる型が混ざっていてもOKです。