본문 바로가기
🩵 React/학습 노트

[React🩵] 구조 분해 할당(Destructuring)

by 솔비님 2025. 2. 25.

01.  객체 Destructuring

1-1.  다중 속성 추출

아래의 코드를 살펴보면 item 객체 내부에 두 가지 요소 name, price가 있다

const item = {
    name: "커피",
    price: 4000
};

 

 

구조 분해 할당을 실행하게 되면 → { name, price } = item

name과 price 이라는 새로운 변수가 생성된다

  • name = item.name
  • price = item.price
const item = {
    name: "커피",
    price: 4000
};

// 구조 분해 할당 실행
const { name, price } = item;

console.log(name);  // "커피"
console.log(price); // 4000

 

 

이 때 새로 생성된 변수명은 item 객체 내부의 변수명과 동일해야한다

구조 분해 할당은 순서가 아닌 키(Key) 이름을 기준으로 매칭되기 때문

 

 

아래 코드를 살펴보면 잘 알 수 있다

name에 "차"를 재할당하고, console을 찍어봤을 때 name 두가지가 다르게 찍혀나오는 것을 알 수 있음

 

 

 

만약 변수명을 다르게 설정하고 싶다면 아래의 방식으로 별칭(Alias) 사용이 가능하다

 const item = {
    name: "커피",
    price: 4000
};

const { name: productName, price: productPrice } = item;

console.log(productName); // "커피"
console.log(productPrice); // 4000

 

 

 


1-2.  함수 매개변수에서 사용

아래 코드에서 great() 함수는 객체를 매개변수로 받아서 { name, age } 를 구조 분해 할당

함수 내부에서 직접 접근 하지 않아도 name과 age를 사용 가능

function greet({ name, age }) {
    console.log(`안녕하세요, 제 이름은 ${name}이고 나이는 ${age}개월입니다.`);
  }
  greet({ name: "김동식", age: 8 });

 

 

 


02.  배열 구조 분해 할당

2-1.  기본 배열

아래 코드의 배열 colors에서 에서 첫 번째, 두 번째 요소를 변수 firstColor, secondColor에 할당

이때 객체 구조 분해 할당과 다른점은 순서대로 할당이 된다는 것이다

const colors = ["red", "green", "blue"];

// 배열 구조 분해 할당
const [firstColor, secondColor] = colors;

console.log(firstColor);  // "red"
console.log(secondColor); // "green"

 

 


2-2.  특정 요소만 추출하기

특정한 요소만 사용할 때는 쉼표(,)를 사용하여 건너뛴다

쉼표 위치의 요소는 무시된다

const colors = ["red", "green", "blue"];

// 두 번째 요소는 건너뛰고 세 번째 요소만 할당
const [, , thirdColor] = colors;

console.log(thirdColor);  // "blue"

 

여기서 궁금한게 배열이 길어지면 어떻게 특정한 요소를 추출할까?

쉼표를 무한정으로 찍을 수도 없을 것 같아서 찾아봄

 

 


2-3.  묶어 가져오기(rest operator)

스프레드 연산자(...)를 이용하면 나머지 요소를 하나의 배열로 묶어 가져올 수 있다

const colors = ["red", "green", "blue"];

const [firstColor, ...rest] = colors;
console.log(rest);

 

 


2-4.  특정 구간의 요소만 가져오기

slice()를 사용해서 필요한 부분만 가져올 수 있다

  • silce(시작 인덱스, 끝 인덱스(포함x)
const colors = ["red", "green", "blue", "yellow", "purple", "orange"];

// 배열에서 첫 번째부터 세 번째 요소까지만 가져오기
const slicedColors = colors.slice(0, 3);

console.log(slicedColors);  // ["red", "green", "blue"]

'🩵 React > 학습 노트' 카테고리의 다른 글

[React🩵] useState  (0) 2025.02.28
[React🩵] Props  (0) 2025.02.27
[React🩵] id와 className  (0) 2025.02.27
[React🩵] Promise  (0) 2025.02.26
[React🩵] ||(or연산자) ??(Nullish Coalescing 연산자)의 차이점  (0) 2025.02.26