web-dev-qa-db-ja.com

javascriptで可変引数を持つ関数を作成する方法は?

可変量の引数を使用してJavaScriptで関数を作成したいと思います。次の例は、この関数を呼び出す方法です。

myFunction(1,2);
myFunction(1,2,3);
myFunction(1,2,3,4);
myFunction(1,2,3,4,5);
myFunction(1,2,3,4,5,6);

この関数を定義する方法を知っている人はいますか?

20
McSas

次のようにプロトタイプで引数を記述する必要なしに、引数を序数の位置でアクセスできます。

function myFunction() {
  for (var i = 0; i < arguments.length; i++)
    alert(arguments[i]);
}

myFunction(1, 2, "three");

>>1
>>2
>>three

または、実際に意味的に関連する数値のセットを渡す場合は、配列を使用できます。

function myFunction(arr) { ... }
result = myFunction([1,2,3]);
28
Alex K.

最新のアップデート

RESTパラメーターはすべての新しいブラウザーでサポートされています。 詳細はこちらをご覧ください

残りのパラメーター構文を使用すると、無数の引数を配列として表すことができ、他の関数に渡すこともできます。

function myFunction(...data){
  console.log(...data);
  myOtherFunction(...data);
}

myFunction(1,2,3);     //logs 1,2,3

myFunction([1,2,3]);   //logs [1,2,3]
9
optimistanoop

次のように「arguments」変数を使用します。

function myFunction() {
    alert(arguments.length + ' arguments');
    for( var i = 0; i < arguments.length; i++ ) {
        alert(arguments[i]);
    }
 }

以前と同じようにメソッドを呼び出します

myFunction(1,2);
myFunction(1,2,3,4,5,6);
3
Jean-Charles
2
Matthew Wilson

引数が存在しない場合は、デフォルトを使用してください。このような...

function accident() {
    //Mandatory Arguments
    var driver = arguments[0];
    var condition = arguments[1]

    //Optional Arguments
    var blame_on = (arguments[2]) ? arguments[2] : "Irresponsible tree" ;
}

accident("Me","Drunk");
2
Stephan

アドオンとして: (german wiki) のように、無名関数パラメーターに値を割り当てることができます。

arguments[0] = 5;
1
serv-inc