240808 rest operator

์‹ ํ•œ๋ณ„ยท2024๋…„ 8์›” 8์ผ

๐Ÿ’ช ๋งค์ผ ๊ธฐ๋ก

๋ชฉ๋ก ๋ณด๊ธฐ
43/97

๐Ÿ’ก rest operator ๋Š” spread operator ์™€ ์œ ์‚ฌ

์‚ฌ์šฉ๋ฒ•

spread operator ์™€ ๋™์ผํ•˜๊ฒŒ ...๋ณ€์ˆ˜๋ช… ์„ ์‚ฌ์šฉ

์ฐจ์ด์ 

spread operatorrest operator
๋ฐฐ์—ด, ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉr(1) ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜
(2) ๊ฐ์ฒด ๋ถ„ํ•ด ํ• ๋‹น ์‹œ, ์—ฌ๋Ÿฌ ๊ฐ’์„ ๊ทธ๋ฃนํ•‘ํ•  ๋•Œ ์‚ฌ์šฉ

spread operator
๋ฐฐ์—ด, ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ

rest operator
(1) ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜
(2) ๊ฐ์ฒด ๋ถ„ํ•ด ํ• ๋‹น ์‹œ, ์—ฌ๋Ÿฌ ๊ฐ’์„ ๊ทธ๋ฃนํ•‘ํ•  ๋•Œ ์‚ฌ์šฉ

์—ญํ• 

(1) ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜

function sum(numbers) {
    return numbers.reduce((acc, cur) => acc + cur);
}

const result = sum([1, 2, 3, 4, 5]);
console.log(result); // 15
//////////////////์œ„ ์•„๋ž˜๋Š” ๊ฐ™๋‹ค! /////////////////////////

function sum(...numbers) {
    return numbers.reduce((acc, cur) => acc + cur);
}

const result = sum(1, 2, 3, 4, 5); // []๋กœ ๊ฐ์‹ธ์ ธ ์žˆ์ง€ ์•Š์ง€๋งŒ ...numbers๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด []๋กœ ์ถœ๋ ฅ 
console.log(result); // 15

(2) ๊ฐ์ฒด ๋ถ„ํ•ด ํ• ๋‹น ์‹œ, ๋‚จ์€ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”

๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์ด๋‚˜ ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด์—์„œ ๋‚จ์€ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•  ๋•Œ ์‚ฌ์šฉ => ์ž”๋ฐ˜ ์ฒ˜๋ฆฌ? ๐Ÿ˜ฑ

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•จ์ˆ˜์—์„œ ์—ฌ๋Ÿฌ ์ธ์ˆ˜๋ฅผ ๋ฐฐ์—ด๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ฑฐ๋‚˜, ๊ฐ์ฒด ๋ถ„ํ•ด ํ• ๋‹น(destructuring)์—์„œ ํŠน์ • ์†์„ฑ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์†์„ฑ๋“ค์„ ์ƒˆ ๊ฐ์ฒด๋กœ ๊ทธ๋ฃนํ™”ํ•  ๋•Œ ์‚ฌ์šฉ.

๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด)? ์ค‘๊ด„ํ˜ธ{}, ๋Œ€๊ด„ํ˜ธ[]๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด/๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹. ๋ณ„ ๊ฑฐ ์•„ ๋‹˜ .


const person = {
    name: "John",
    age: 30,
    country: "USA",
    occupation: "Developer"
};

const { country, ...rest } = person;
console.log(rest); // { name: "John", age: 30, occupation: "Developer" }

0๊ฐœ์˜ ๋Œ“๊ธ€