関数の引数をまとめるまたは展開
関数の引数をまとめるまたは展開には、スプレッド構文...
メソッドを使用します。
- ※ ECMAScript 2015(ES6)から追加された機能のため、全てのIEや古いバージョンのブラウザは対応していません。
構文
...引数名
サンプルコード
次のコードは、渡された引数のうち、第二引数以降をnumsという名前にまとめています。
JavaScript
const foo = (type, ...nums) => {
return nums.reduce((prevVal, currentVal) => {
return type === 'add' ? prevVal += currentVal : prevVal -= currentVal;
});
};
const result1 = foo('add', 10, 20, 30, 40, 50);
const result2 = foo('sub', 10, 20, 30, 40, 50);
console.log(result1); // 150
console.log(result2); // -130
次のコードは、配列を引数として渡す際に展開します。
JavaScript
const foo = (type, x, y, z) => type === 'add' ? x + y + z : x - y - z};
const bar = [10, 20, 30];
const result1 = foo('add', ...bar);
const result2 = foo('sum', ...bar);
console.log(result1); // 60
console.log(result2); // -40