본문 바로가기
javascript

구조 분해 할당(Destructuring assignment)

by dev__log 2024. 7. 4.

구조 분해 할당(Destructuring assignment)은 배열이나 객체의 속성을 분해하여 그 값을 변수에 담을 수 있도록 하는 표현식이다.

 

객체의 경우

중괄호 안에 변수명을 넣고 분해할 객체를 지정해 주면 된다.

 

const {name, age}는 객체의 키 값이기 때문에 {age, name} 이렇게 순서를 변경하여도 결과는 같다.

객체는 순서가 중요하지 않다!

const person = {name : 'jiji', age: 11};

const {name, age} = person;
console.log(name) //jiji
console.log(age) //11

 

 

만약 변수명을 키의 이름과 다르게 변경하고 싶다면 아래와 같이 키 값 : 새로운 변수명 과 같이 작성해 주면 된다.

const person = {name : 'jiji', age: 11};

const {name : name22, age : age22} = person;
console.log(name22) //jiji
console.log(age22) //11

 

 

중첩 객체의 경우

아래와 같은 중첩 객체가 있다고 할 때,

const person = {
    name : 'jiji',
    age : '11',
    info : {
        food : '김치볶음밥',
        color : 'blue'
    }
}

 

구조 분해 할당한 부분에서 한 번 더 구조 분해 할당을 하면 중첩 객체도 분해할 수 있다.

const {name, age, info:{food, color}} = person
console.log(`${name}님이 좋아하는 음식은 ${food}입니다.`) //jiji님이 좋아하는 음식은 김치볶음밥입니다.

배열의 경우

객체와 다른 점은 대괄호를 사용하고, 대괄호 안에 변수명의 순서가 중요하다는 점이다.

const person = ['jin', 'james', 'jun']

const [name1, name2] = person;
console.log(name2) //james

 

2번째 변수인 name2를 출력하면 james가 출력되는 것을 볼 수 있다.

 

만약 첫 번째와 두 번째 값이 필요하지 않다면 생략하고 할당할 수 있다.

const [, , name3] = person

console.log(name3) //jun

 

'javascript' 카테고리의 다른 글

sort  (0) 2024.07.01
모듈 module  (0) 2024.01.08
Set 자료구조  (0) 2024.01.04
배열 메소드 - slice(), includes(), find(), indexOf()  (1) 2024.01.03
호이스팅  (2) 2024.01.02