본문 바로가기
JavaScript

구조 분해 할당 예시 (object destructuring)

by whoyoung90 2024. 6. 21.
반응형

 

구조 분해 할당이란?
"배열"이나 "객체"의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식

 

기본적인 것 말고, 내가 기록해두고 싶은 재할당 예시만 메모해두고자 한다.

 

1. 배열에서 변수 재할당

- 실무에서 정말 많이 사용하는 예시

const menu = ['americano', 'latte'];
const [myPick, yourPick] = menu; 

console.log(myPick); // 'americano' 
console.log(yourPick); // 'latte' 
console.log(menu); // ['americano', 'latte']

 

2. 로그인 로직에서의 배열 구조 분해 할당

const authorization = "Wooyoung hbTfisdhf4XiojVHl3OobCO-erf"; 
const [bearer, token] = authorization.split(' ');

console.log(bearer); // 'Wooyoung' 
console.log(token); // 'hbTfisdhf4XiojVHl3OobCO-erf'

 

3. spread Operator에서의 구조 분해 할당

- 배열을 구조 분해할 경우, 나머지 구문을 이용해 분해하고 남은 부분을 하나의 변수에 할당할 수 있다고 한다.

const [sing, ...rest] = ['여보세요', '나야', '거기', '잘지내니'];

console.log(sing); // '여보세요'
console.log(rest); // [ '나야', '거기', '잘지내니' ]

 

4. for of문에서의 구조 분해 할당

- Object.entries를 이용해 객체에서 각각의 key, value를 뽑아내려고 할 때

const animal = { name: 'Tiger', age: 10 };
Object.keys(animal); // [ 'name', 'age' ]
Object.values(animal); // [ 'Tiger', 10 ]
Object.entries(animal); // [ [ 'name', 'Tiger' ], [ 'age', 10 ] ]

const zooInfo = obj => { 
  for(let [key, val] of Object.entries(obj)) { 
  console.log(`${key} : ${val}`);
  }
}

zooInfo(animal); 
// 'name : Tiger'
// 'age : 10'

 

- 객체가 여러개일 경우에는 객체 구조 분해 할당

const animals = [
  { name: 'Tiger', age: 10 },
  { name: 'Dog', age: 4 },
  { name: 'Rabbit', age: 8 }
]

const ShowZooInfo = arr => { 
  for(let {name: n, age: l} of arr) { 
  console.log(`동물 이름은 ${n}이고, 나이는 ${l}살 입니다`);
  }
}

ShowZooInfo(animals); 
// '동물 이름은 Tiger이고, 나이는 10살 입니다' 
// '동물 이름은 Dog이고, 나이는 4살 입니다' 
// '동물 이름은 Rabbit이고, 나이는 8살 입니다'

 

 

반응형

'JavaScript' 카테고리의 다른 글

객체끼리 값 비교하기  (1) 2023.11.13
onChange, onInput 차이  (0) 2022.10.31
클래스 비교(ES5 vs ES6)  (0) 2022.07.24
Static Methods, Prototype Methods 정리  (0) 2022.07.17
Object.create 활용예시 (prototype)  (0) 2022.07.03

댓글