JavaScript関数で無制限のパラメーターを受け入れる方法

無制限の数のパラメーターを受け入れる関数を使用するにはどうすればよいですか?

と呼ばれる関数があるとしましょうjoin()その仕事は、渡されたすべての文字列を結合することです。

たとえば、2つの文字列を受け入れるプロトタイプを作成します。

const join = (string1, string2) => {
  return string1 + string2
}

それを呼び出すと、渡す2つの引数を連結した文字列が得られます。

join('hi', ' flavio') // 'hi flavio'

簡単な方法の1つは、次のように、デフォルトで空の文字列になる追加のパラメーターを追加することです。

const join = (string1, string2, string3 = '') => {
  return string1 + string2 + string3
}

ただし、このアプローチは適切に拡張できません。これは、多数のパラメーターを追加する必要があり、コードの外観がかなり悪くなるためです。

代わりに、spread演算子(...)の後に、使用するパラメーターの名前が続きます。関数内では、パラメーターは配列であるため、単純に呼び出すことができます。.join()空の文字列を引数として渡して、含まれている文字列を連結するメソッド(それ以外の場合は、デフォルトで文字列を連結し、間にコンマを追加します):

const join = (...strings) => {
  return strings.join('')
}

この場合、矢印関数で使用可能な暗黙の戻り構文を使用して、これを単純化することもできます。

const join = (...strings) => strings.join('')

以前と同じ方法でこれを呼び出すことができます。

join('hi', ' flavio') // 'hi flavio'
join('hi', ' flavio', ' it', ' is', ' a', ' beautiful day!') // ''hi flavio it is a beautiful day!'

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: