JavaScript | 引数の数に応じて処理を変える関数

JavaScript JavaScript
スポンサーリンク

では「引数の数に応じて処理を変える関数」を一緒に作ってみましょう。


お題

  • 引数が 1つ → その値を 2倍
  • 引数が 2つ → 2つを 掛け算
  • 引数が 3つ以上 → 全部を 掛け算

コード例(arguments を使う場合)

function smartMultiply() {
  if (arguments.length === 1) {
    return arguments[0] * 2;
  } else if (arguments.length === 2) {
    return arguments[0] * arguments[1];
  } else {
    let result = 1;
    for (let i = 0; i < arguments.length; i++) {
      result *= arguments[i];
    }
    return result;
  }
}

console.log(smartMultiply(5));        // 10 (2倍)
console.log(smartMultiply(2, 3));     // 6  (掛け算)
console.log(smartMultiply(2, 3, 4));  // 24 (全部掛け算)
JavaScript

コード例(rest パラメータを使う場合)

function smartMultiply(...nums) {
  if (nums.length === 1) {
    return nums[0] * 2;
  } else if (nums.length === 2) {
    return nums[0] * nums[1];
  } else {
    return nums.reduce((total, n) => total * n, 1);
  }
}

console.log(smartMultiply(5));        // 10
console.log(smartMultiply(2, 3));     // 6
console.log(smartMultiply(2, 3, 4));  // 24
JavaScript

✅ ポイント

  • arguments は「古い書き方」だけど、既存コードを読むときに役立つ。
  • rest (...nums) は「新しい書き方」で、配列メソッドが使えるので便利。
  • どちらも「引数の数に応じて処理を変える」ことができる。
タイトルとURLをコピーしました