ํฐ์คํ ๋ฆฌ ๋ทฐ
[๐ฆ] JS ๋ฌธ๋ฒ - Destructuring (๊ตฌ์กฐ ๋ถํด ํ ๋น)
์ฑ._. 2025. 1. 18. 14:56'destucture'์ ๋ป์ ํ๊ดดํ๋ค
๋ฐฐ์ด, ๊ฐ์ฒด ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์์ฐ๋ค.
Destructuring
๐array ์ ์ฉ ์์
1. ์๋ ๋ฐฐ์ด์์ "๊ฐ์์ง"๋ dog๋ผ๋ ๋ณ์์,
"๊ณ ์์ด"๋ cat์ด๋ผ๋ ๋ณ์์ ๋ฃ์ผ๋ ค๋ฉด?
const ๋๋ฌผ๋ฆฌ์คํธ = ["๊ฐ์์ง", "๊ณ ์์ด"];
์ ๋ต
1.
const dog = ๋๋ฌผ๋ฆฌ์คํธ[0]; // dog => "๊ฐ์์ง"
const cat = ๋๋ฌผ๋ฆฌ์คํธ[1]; // cat => "๊ณ ์์ด"
2.
const ๋๋ฌผ๋ฆฌ์คํธ = ["๊ฐ์์ง", "๊ณ ์์ด"];
const [dog, cat] = ๋๋ฌผ๋ฆฌ์คํธ;
// dog => "๊ฐ์์ง"
// cat => "๊ณ ์์ด"
=> ์์์ ๋ง๊ฒ ๊ตฌ์กฐ๋ถํดํ ๋น์ด ์ ์ฉ๋๋ค.
2. ๋ฐฐ์ด colors์์ ์ธ ๋ฒ์งธ ๊ฐ์ธ blue๋ง ์ถ๋ ฅํ๋ ค๋ฉด?
const colors = ["red", "green", "blue"];
console.log();
์ ๋ต
const colors = ["red", "green", "blue"];
const [, , thirdColor] = colors;
console.log(thirdColor); //blue ์ถ๋ ฅ๋จ
3. ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์์ ์ฒซ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ์์๋ฅผ ๋์คํธ๋ญ์ฒ๋ง์ ์ฌ์ฉํ์ฌ ์ถ์ถํ์ฌ first, third ๋ณ์์ ๋ด์ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
const numbers = [10, 20, 30, 40, 50];
์ ๋ต
const [first, , third] = numbers;
console.log(first); // 10
console.log(third); // 30
4. ํธํ ์ ์์ฝ ํ์ธ ์์คํ ์ ํจ์๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ์๋ ๊ฒฐ๊ณผ์ ๊ฐ์ด ์ถ๋ ฅ๋๋๋ก ํจ์๋ฅผ ์์ฑํด ๋ณด์ธ์.(๋ณ์๋ช ๋ฐ๊พธ๊ธฐ)
function confirmReservation(user) {
// ์ฌ๊ธฐ์ user ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น ํ์ธ์.
return `${name} ๊ณ ๊ฐ๋์ ${roomType}๋ฃธ ์
์ค๋ ์ง๋ ${firstDate} ์
๋๋ค.`
}
const userInfo = {
name: "James",
roomType: "Deluxe",
date: "2023-05-30"
}
const result = confirmReservation(userInfo);
console.log(result);
์ ๋ต
function confirmReservation(user) {
// ์ฌ๊ธฐ์ user ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น ํ์ธ์.
const {name, roomType, date: firstDate} = user;
return `${name} ๊ณ ๊ฐ๋์ ${roomType}๋ฃธ ์
์ค๋ ์ง๋ ${firstDate} ์
๋๋ค.`
}
const userInfo = {
name: "James",
roomType: "Deluxe",
date: "2023-05-30"
}
const result = confirmReservation(userInfo);
console.log(result); // ์ถ๋ ฅ ๊ฒฐ๊ณผ: 'James ๊ณ ๊ฐ๋์ Deluxe๋ฃธ ์
์ค๋ ์ง๋ 2023-05-30 ์
๋๋ค.'
๐object ์ ์ฉ ์์
1. ์๋ ๊ฐ์ฒด์์ "๋ฉ์ง์ ์ธ "๋ '์ํ๋ช '์ด๋ผ๋ ๋ณ์์,
10000์ '๊ฐ๊ฒฉ'์ด๋ผ๋ ๋ณ์์ ๋ฃ์ผ๋ ค๋ฉด?
const product = {
์ํ๋ช
: "๋ฉ์ง์
์ธ ",
๊ฐ๊ฒฉ: 10000,
}
์ ๋ต
1.
const ์ํ๋ช
= product.์ํ๋ช
;
const ๊ฐ๊ฒฉ = product.๊ฐ๊ฒฉ;
2.
const product = {
์ํ๋ช
: "๋ฉ์ง์
์ธ ",
๊ฐ๊ฒฉ: 10000,
}
const { ๊ฐ๊ฒฉ, ์ํ๋ช
} = product;
=> ๊ฐ์ฒด ๋ด๋ถ ์์์๋ ๊ฒ์ด ๊ฐ๊ฐ์ ๋ณ์์ ํ ๋น๋์๋ค.
2. person์ name๊ณผ age๋ฅผ greet ํจ์์ ์ ์ฉ์์ผ์
"์๋ ํ์ธ์. ์ ์ด๋ฆ์ ๋ฅด์์ด์ ๋๋ค. ๋์ด๋ 28์ด์์." ๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์?
function greet() {
console.log()
}
const person = {
name : "๋ฅด์์ด",
age: 28,
}
greet(person);
์ ๋ต
1.
function greet(person) {
console.log(`์๋
ํ์ธ์. ์ ์ด๋ฆ์ ${person.name}์
๋๋ค. ๋์ด๋ ${person.age}์ด์์.`)
}
const person = {
name : "๋ฅด์์ด",
age: 28,
}
greet(person);
2.
function greet({ name, age }) {
console.log(`์๋
ํ์ธ์. ์ ์ด๋ฆ์ ${name}์
๋๋ค. ๋์ด๋ ${age}์ด์์.`)
}
const person = {
name : "๋ฅด์์ด",
age: 28,
}
greet(person);
=> ๊ฐ์ฒด๋ key์ ์ด๋ฆ์ ๋ฐ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ greet ๋ด๋ถ์ ์ธ์์ ์์๊ฐ ๋ฐ๋์ด๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
3. ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์์ name๊ณผ age๋ฅผ ๋์คํธ๋ญ์ฒ๋ง์ ์ฌ์ฉํ์ฌ ์ถ์ถํ๊ณ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
const person = {
name: "๋ฅดํ์ด",
age: 25,
job: "๊ฐ๋ฐ์"
};
์ ๋ต
const { name, age } = person;
console.log(name); // ๋ฅดํ์ด
console.log(age); // 25
4. ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์์ title๊ณผ year๋ฅผ ๋์คํธ๋ญ์ฒ๋ง์ ์ฌ์ฉํ์ฌ ์ถ์ถํ๊ณ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.(์ค์ฒฉ ๊ฐ์ฒด)
const movie = {
title: "Inception",
director: "Christopher Nolan",
release: {
year: 2010,
month: "July"
}
};
const { title, release: { year } } = movie;
console.log(title); // Inception
console.log(year); // 2010
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| JQuery ์ฐ์ตํ๊ธฐ - append&forEach (0) | 2025.01.19 |
|---|---|
| JQuery CDN ์ด๋? (0) | 2025.01.19 |
| [๐ฆ] JS ๋ฌธ๋ฒ - Spread operator (์ ๊ฐ ์ฐ์ฐ์) (0) | 2025.01.18 |
| [๐ฆ] ๋ฐฐ์ด ๋ฉ์๋(4) - map (0) | 2025.01.18 |
| [๐ฆ] ๋ฐฐ์ด ๋ฉ์๋(3) - filter (0) | 2025.01.18 |