패스트캠퍼스 데브캠프

김민태의 데브캠프 2기 - 구조 분해 할당(Destructuring)

vitamin3000 2024. 11. 6. 15:10

정의 : 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 Javascript 표현식

 

 

객체 구조 분해 할당 예시

 

let person = {
	name: 'Maya",
	age: 30,
	phone: '123',
	address: {
		zipcode: 1234,
		street: 'rainbow',
		number: 42
	}
}

let {address: {zipcode, street, number}} = person;

console.log(zipcode, street, number); // 1234 rainbow 42

 

배열 구조 분해 할당 

 

let a, b, rest;
{a, b} = [10, 20];

console.log(a);

console.log(b);

{a, b, ...rest} = [10, 20, 30, 40, 50]}

console.log(rest)  // 30, 40, 50

// 인덱스 값을 이용한 참조
const week = ['monday', 'tuesday', 'wednesday', 'thuresday', 'friday'];
const day1 = week[0];
const day2 = week[1];
const day3 = week[2];
const day4 = week[3];
const day5 = week[4];

// 배열 구조 분해 할당

const week = ['monday', 'tuesday', 'wednesday', 'thuresday', 'friday'];
const [day1, day2, day3, day4, day5] = user;

const numbers = [1,2,3,4,5,6];

const [..three, ..five] = numbers;

 

심화 배열 구조 분해 할당

 

var people = [
	{
		name: 'Mike Smith',
		family: {
			mother: 'Jane Smith',
			father: 'Harray Smith';
			sister: 'Samanta Smith'
		},
	age:35
	},

	{
		name : 'Tom Jonee',
		family: {
			mother: 'Morah Jonee',
			father: 'Sichard Jonee',
			broher: 'Howard Jonee'
		},
	age: 25
	}
};

for (var {name: n, family: { father: f ) ) of people; {
	console.log("Name : " + n + ", Father: " + f);
}

// "Name : Mike Smith, Father: Harry Smith'
// "Name : Tom Jonee, Father: Sichard Jonee'