[JavaScript] 자바스크립트 나머지 매개변수란?
글 작성자: 망고좋아
반응형
🎯 나머지 매개변수, Rest Operator
- 함수의 인자, 배열, 객체 중 나머지 값을 묶어 사용하도록 한다.
- 함수의 인자 중 나머지를 가리킨다.
- 배열의 나머지 인자를 가리킨다.
- 객체의 나머지 필드를 가리킨다.
📝 함수 인자 Rest Operator
function findMin(...rest) { // ...rest는 [7, 3, 5, 2, 4, 1] 이렇게 간다.
return rest.reduce((a, b) => a < b ? a : b);
}
console.log(findMin(7, 3, 5, 2, 4, 1)); // 1
- 함수 인자 rest operator는 인자들을 배열로 묶는다.
- rest에는 숫자들이 배열로 담긴다.
- reduce함수로 min 값을 리턴한다.
📝 객체 인자 Rest Operator
const o = {
name: "test",
age: 23,
address: "Street",
job: "FE",
};
const { age, name, ...rest } = o;
console.log(rest);
/*
{
address:"Street",
job:"FE"
}
*/
- 객체의 rest operator는 지정된 필드 외의 나머지 필드를 객체로 묶는다.
- age, name을 제외한 나머지 필드는, rest변수로 할당된다.
- 배열의 경우, 인자가 하나도 없다면 rest operator로 묶을 수 없다.
- 인자가 하나도 없더라도, rest operator는 빈 배열을 반환한다.
📝 배열 인자 Rest Operator
function sumArray(sum, arr) {
if (arr.length === 0) {
return sum;
}
const [head, ...tail] = arr;
return sumArray(sum + head, tail);
}
console.log(sumArray(0, [1, 2, 3, 4, 5])); // 15
- 배열의 rest operator는 나머지 인자를 다시 배열로 묶는다.
- sumArray의 tail변수는 첫 번째 원소 head를 제외한 나머지 값들을 다시 배열로 묶는다.
- tail은 하나씩 줄어들게 되며 길이가 0이 되면 합을 반환한다.
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 var, let, const 차이점, 호이스팅(Hoisting), for문 안에 setTimeout을 사용할 때 var와 let의 차이점 (0) | 2021.11.15 |
---|---|
[JavaScript] 자바스크립트 전개 연산자란? (0) | 2021.11.13 |
[JavaScript] 자바스크립트 클로저란? (0) | 2021.11.13 |
[JavaScript] 자바스크립트에서 함수는 일급 객체(first-class-object)이다. (0) | 2021.11.13 |
[JavaScript] 자바스크립트 화살표 함수와 일반 함수의 this (0) | 2021.11.13 |
댓글
이 글 공유하기
다른 글
-
[JavaScript] 자바스크립트 var, let, const 차이점, 호이스팅(Hoisting), for문 안에 setTimeout을 사용할 때 var와 let의 차이점
[JavaScript] 자바스크립트 var, let, const 차이점, 호이스팅(Hoisting), for문 안에 setTimeout을 사용할 때 var와 let의 차이점
2021.11.15 -
[JavaScript] 자바스크립트 전개 연산자란?
[JavaScript] 자바스크립트 전개 연산자란?
2021.11.13 -
[JavaScript] 자바스크립트 클로저란?
[JavaScript] 자바스크립트 클로저란?
2021.11.13 -
[JavaScript] 자바스크립트에서 함수는 일급 객체(first-class-object)이다.
[JavaScript] 자바스크립트에서 함수는 일급 객체(first-class-object)이다.
2021.11.13