カテゴリ: JavaScript 更新日: 2025/09/17

JavaScriptの関数の戻り値が複数ある場合の扱い方

JavaScriptの関数の戻り値が複数ある場合の扱い方
JavaScriptの関数の戻り値が複数ある場合の扱い方

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptの関数で戻り値が複数ある場合って、どうやって扱うんですか?」

先生

「JavaScriptの関数は、一度に一つの値しか戻せません。でも、戻したい値が複数ある場合は配列やオブジェクトにまとめて返す方法があります。」

生徒

「配列やオブジェクトって何ですか?難しそうです…」

先生

「大丈夫です。配列は複数の値を順番にまとめる箱、オブジェクトは名前付きで値をまとめる箱と思ってください。実際の使い方も見てみましょう!」

1. JavaScriptの関数は戻り値が1つだけ

1. JavaScriptの関数は戻り値が1つだけ
1. JavaScriptの関数は戻り値が1つだけ

JavaScriptの関数は、returnを使って戻り値を返します。しかし、1回のreturnで返せる値は1つだけです。

例えば、次の関数は数字を一つだけ返します。


function getNumber() {
  return 10;
}
console.log(getNumber()); // 10

では、もし「合計」と「平均」など複数の値を返したい場合はどうするでしょうか?

2. 複数の値を返したいときは「配列」を使う方法

2. 複数の値を返したいときは「配列」を使う方法
2. 複数の値を返したいときは「配列」を使う方法

配列は複数の値を順番にまとめるデータの箱です。戻り値を配列にまとめて返すことで、複数の値を扱えます。


function calculateTotalAndAverage(scores) {
  let total = 0;
  for (let score of scores) {
    total += score;
  }
  let average = total / scores.length;
  return [total, average];  // 配列で返す
}

const result = calculateTotalAndAverage([80, 90, 100]);
console.log(result);        // [270, 90]
console.log("合計:", result[0]);
console.log("平均:", result[1]);

このように配列の0番目や1番目の要素として取り出せますが、数字の順番を間違うとわかりにくくなることがあります。

3. 複数の値を返したいときは「オブジェクト」を使う方法

3. 複数の値を返したいときは「オブジェクト」を使う方法
3. 複数の値を返したいときは「オブジェクト」を使う方法

オブジェクトは「名前」と「値」をセットでまとめるデータの箱です。戻り値をオブジェクトにまとめて返すと、値に名前がつくのでわかりやすくなります。


function calculateTotalAndAverage(scores) {
  let total = 0;
  for (let score of scores) {
    total += score;
  }
  let average = total / scores.length;
  return { total: total, average: average };  // オブジェクトで返す
}

const result = calculateTotalAndAverage([80, 90, 100]);
console.log(result);              // { total: 270, average: 90 }
console.log("合計:", result.total);
console.log("平均:", result.average);

このように名前で値を取り出せるので、コードが読みやすくミスも減らせます。

4. オブジェクトの省略記法と分割代入

4. オブジェクトの省略記法と分割代入
4. オブジェクトの省略記法と分割代入

JavaScriptでは、オブジェクトのキーと変数名が同じときに省略できます。


function calculateTotalAndAverage(scores) {
  let total = 0;
  for (let score of scores) {
    total += score;
  }
  let average = total / scores.length;
  return { total, average };  // 省略形
}

さらに、戻り値のオブジェクトから必要な値だけを取り出す「分割代入」も便利です。


const { total, average } = calculateTotalAndAverage([80, 90, 100]);
console.log("合計:", total);
console.log("平均:", average);

分割代入は、変数に直接値を割り当てられる方法です。

5. 配列で複数の戻り値を返す場合の分割代入

5. 配列で複数の戻り値を返す場合の分割代入
5. 配列で複数の戻り値を返す場合の分割代入

配列で戻り値を返したときも分割代入が使えます。ただし、順番に気をつける必要があります。


const [total, average] = calculateTotalAndAverage([80, 90, 100]);
console.log("合計:", total);
console.log("平均:", average);

配列の場合は順番で値が決まるので、順序を間違えないようにしましょう。

6. まとめ

6. まとめ
6. まとめ

JavaScriptの関数は戻り値が1つしか返せませんが、配列やオブジェクトにまとめることで複数の値を返すことができます。

配列は順番に値をまとめ、オブジェクトは名前付きで値をまとめるため、用途に合わせて使い分けると良いでしょう。

特にオブジェクトでの戻り値は、コードが読みやすく初心者にもおすすめです。

分割代入を使うと、戻り値から簡単に必要な値だけ取り出せて便利ですよ。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScript × ES6の連携まとめ!安全でモダンなJavaScript開発の鍵
New2
TypeScript
TypeScriptの型システムとは?静的型付けのメリットと基本
New3
JavaScript
JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう
New4
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの正規表現で文字列を置換する方法(replaceメソッド)
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する