関数の引数をまとめるまたは展開

関数の引数をまとめるまたは展開には、スプレッド構文...メソッドを使用します。

  • ※ 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

JavaScript逆引きリファレンス一覧へ戻る