ํฐ์คํ ๋ฆฌ ๋ทฐ
ํํ๋ ...๋ณ์๋ช ์ผ๋ก
spread operator์ ๋ฎ์์์ง๋ง, ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ค๋ฅธ rest operator
Rest operator
๐์ฌ์ฉ๋ฐฉ๋ฒ
๋๋จธ์ง ์ฐ์ฐ์(= rest operator)๋ ํจ์์ ๋งค๊ฐ๋ณ์์์ ์ฌ์ฉ๋๊ฑฐ๋,
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด๋ ๋ฐฐ์ด ๋ฆฌํฐ๋ด์์ ๋จ์ ๋ถ๋ถ์ ํ๋์ ๋ณ์๋ก ๊ทธ๋ฃนํํ ๋ ์ฌ์ฉ๋๋ค.
์๋ฅผ ๋ค์ด ํจ์์์ ์ฌ๋ฌ ์ธ์๋ฅผ ๋ฐฐ์ด๋ก ๊ทธ๋ฃนํํ๊ฑฐ๋,
๊ฐ์ฒด ๋ถํด ํ ๋น(destructuring)์์ ํน์ ์์ฑ์ ์ ์ธํ ๋๋จธ์ง ์์ฑ๋ค์ ์ ๊ฐ์ฒด๋ก ๊ทธ๋ฃนํํ ๋ ์ฌ์ฉํ๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด(๋ฐฐ์ด ๋ฆฌํฐ๋ด)?
๋จ์ํ ์ค๊ดํธ {}๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์ง์ ์ ์ธํ๋ ๋ฐฉ์์ด๋ค.
๋ฐฐ์ด๋ฆฌํฐ๋ด๋ ๋ง์ฐฌ๊ฐ์ง []๋ฅผ ํตํด ์ง์ ์ ์ธํ๋ ๋ฐฉ์์ด๋ค.
๐ํจ์์ ๋งค๊ฐ๋ณ์
๋ฐฐ์ด๋ก ๋ค์ด์ค์ง ์๋ input์ ํ ๊ตฐ๋ฐ์ ๋ฌถ์ ๋ ์ฌ์ฉํ๋ค.
function sum(...numbers) {
console.log(numbers) //[1, 2, 3, 4] => ...(rest operator)์ ์ํด ๋ฐฐ์ด ํํ๋ก ๋ณํ
return numbers.reduce((acc, current) => acc + current, 0);
}
console.log(sum(1, 2, 3, 4)); // 10
input์ด ๋ฐฐ์ด ํํ์ผ ๋ reduce ํ์
function sum (first, second, third, forth, fifth) {
return numbers.reduce((acc, cur) => acc + cur);
}
const result = sum(1, 2, 3, 4, 5);
console.log(result);
๐๊ฐ์ฒด ๋ถํด ํ ๋น
key๊ฐ country ์ธ ๊ฒ์ ๋นผ๊ณ ์๋กญ๊ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
const person = {
name: "John",
age: 30,
country: "USA",
occupation: "Developer"
};
const { country, ...rest } = person;
console.log(rest); // { name: "John", age: 30, occupation: "Developer" }
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๐ฆ] ๋จ์ถ ํ๊ฐ (Short Circuit Evaluation) (0) | 2025.01.20 |
|---|---|
| [๐ฆ] ํ์ดํ ํจ์ (Arrow function) (0) | 2025.01.20 |
| JavaScript ๋ฌธ๋ฒ ์ข ํฉ 3์ฃผ์ฐจ ๊ณผ์ (1) | 2025.01.19 |
| Fetch ํ์ฉํ๊ธฐ_์กฐ๊ฑด๋ฌธ (0) | 2025.01.19 |
| Fetch ํ์ฉํ๊ธฐ_prac3 (0) | 2025.01.19 |