関数のレストパラメーターを指定する
説明
ES6では関数に渡されるパラメーターの数が不定である場合の記述方法が用意されています。 これはレストパラメーターと呼ばれるものです。パラメーターを指定する際に変数名の前に...を付ければ、渡されたパラメーターが配列要素として入ります。function abc(...data){〜}ならdata配列に渡された全てのパラメーターが入ります。data[0]なら最初のパラメーターですし、data[1]なら2番目のパラメーターになります。data.lengthとすれば渡されたパラメーターの数が分かります。
function abc(n1, n2, ...data){〜}とした場合は、最初のパラメーターがn1に、2番目のパラメーターがn2に、残りのパラメーターがdata配列に入ることになります。
*サンプルは2015年7月2日時点ではFirefoxで動作します。
サンプルプログラム
// レストパラメーターで合計を計算
function sum(...data){
var total = 0;
for(var i=0; i<data.length; i++){
total = total + data[i];
}
return total;
}
document.write(sum(10)+"<br>");
document.write(sum(1,2,3,4,5,6,7,8,9,10)+"<br>");