JavaScript의 spread 연산자
ES6에는 ...라고 불리는 특별한 연산자가
도입되었는데, 이를 spread 연산자라고 합니다.
spread 연산자가 배열 앞에 올 때, 이 배열을 개별 값들로 분해하여, 배열을 함수 호출에 필요한 매개변수들의 집합으로 변환합니다.
아마도 이해하기 어려울 수 있으므로, 간단한 예제를 살펴보겠습니다. 3개의 매개변수를 받아 그 합을 반환하는 함수가 있다고 합시다:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
또한 세 개의 요소를 가진 배열이 있다고 합시다:
let arr = [1, 2, 3];
당연히 우리는 이 배열을 함수에 다음과 같이 매개변수로 그냥 전달할 수는 없습니다:
let arr = [1, 2, 3];
func(arr);
왜냐하면 이 경우 전체 배열이 함수의 첫 번째 매개변수로 들어가게 되는데, 이 매개변수에는 숫자가 전달되어야 하기 때문입니다(나머지 매개변수들도 마찬가지입니다).
물론 다음과 같이 할 수도 있습니다:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
하지만 더 쉬운 방법이 있습니다 - spread 연산자를 사용하는 것입니다:
let arr = [1, 2, 3];
func(...arr);
변수를 사용하는 것은 필수가 아닙니다 - 배열에 직접 spread를 적용할 수도 있습니다:
func(...[1, 2, 3]);
배열이 주어졌습니다:
let arr = [1, 2, 3, 4, 5];
함수도 주어졌습니다:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
주어진 함수를 사용하여 배열 요소들의 합을 구하세요.