[JavaScript] 배열과 객체의 구조 분해 할당 [배열이나 객체의 요소를 분해하여 각각의 변수에 할당]

2023. 5. 29. 11:48·◎ JavaScript/JavaScript🦎
728x90


- 배열과 객체 구조 분해 할당

구조 분해 할당 : 배열이나 객체를 분해해서 그 값들을 각각의 변수에 할당하는 자바스크립트의 표현식

1. 배열의 구조 분해 할당

1) 기본 변수 할당

// 배열에 담긴 값
let colors = ["green", "blue", "purple"];

// 구조 분해 사용 X
let c1 = colors[0]; // "green"
let c2 = colors[1]; // "blue"
let c3 = colors[2]; // "purple"

// 구조 분해 사용 O
let [c1, c2, c3] = colors;

// 결과는 동일하다.
console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"

2) 선언 분리 할당

// colors라는 배열을 별도로 선언하지 않고, 이 변수들에 배열의 값을 바로 할당
let [c1, c2, c3] = ["green", "blue", "purple"];

console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"

// 변수가 배열의 길이보다 더 적은 경우, 각 변수들에 배열 요소의 순서대로 green과 blue의 값이 할당된다.
let [c1, c2] = ["green", "blue", "purple"];

console.log(c1); // "green"
console.log(c2); // "blue"

// 변수가 배열의 길이보다 더 많은 경우, undefined가 할당된다.
let [c1, c2, c3, c4] = ["green", "blue", "purple"];

console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"
console.log(c4); // undefined

// 아래와 같이 변수의 기본값을 설정할 수 있다.
let [c1, c2, c3, c4 = "yellow"] = ["green", "blue", "purple"];

console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"
console.log(c4); // "yellow"

3) 변수값 교환하기

// a와 b의 값을 서로 바꾸려 한다.
let a = 10;
let b = 5;

console.log(a, b); // 10, 5

// 구조 분해 사용 X
let tmp;
tmp = a;
a = b;
b = tmp;

// 구조 분해 사용 O
[a, b] = [b, a];

// 결과는 동일하다.
console.log(a, b); // 5, 10

2. 객체의 구조 분해 할당

1) 기본 변수 할당

let colors = {
    c1: "green",
    c2: "blue",
    c3: "purple",
};

// 구조 분해 사용 X
let c1 = colors.c1;
let c2 = colors.c2;
let c3 = colors.c3;

// 구조 분해 사용 O
let { c1, c2, c3 } = colors;

// 결과는 동일하다.
console.log(c1);// "green"
console.log(c2);// "blue"
console.log(c3);// "purple"

2) 새로운 변수 이름으로 할당

// 프로퍼티 key 값과 다른 이름으로 변수를 할당하고 싶을 때
let colors = {
    c1: "green",
    c2: "blue",
    c3: "purple",
};

// 구조 분해 할당 X
let color1 = colors.c1;
let color2 = colors.c2;
let color3 = colors.c3;

// 구조 분해 할당 O
let { c1: color1, c2: color2, c3: color3 } = colors;

// 결과는 동일하다.
console.log(color1); //green
console.log(color2); //blue
console.log(color3); //purple

3) 변수 기본값 설정

// 프로퍼티의 개수보다 많은 변수를 할당할 수 있다.
let colors = {
    c1: "green",
    c2: "blue",
    c3: "purple",
};

// 프로퍼티의 수보다 많을 경우, undefined로 할당된다.
let { c1, c2, c3, c4 } = colors;

console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"
console.log(c4); // undefined

// 객체도 배열처럼 기본값 설정이 가능하다.
let { c1, c2, c3, c4 = "yellow" } = colors;

console.log(c1); // "green"
console.log(c2); // "blue"
console.log(c3); // "purple"
console.log(c4); // "yellow"

- 참고자료

 

웹 프론트엔드를 위한 자바스크립트 첫 걸음 - 인프런 | 강의

웹 프론트엔드 개발자를 희망한다면? 친절하고 꼼꼼한 자바스크립트 강의로 첫걸음을 내딛어보세요 ✨, - 강의 소개 | 인프런

www.inflearn.com


728x90
'◎ JavaScript/JavaScript🦎' 카테고리의 다른 글
  • [JS] 자바스크립트에 Excel 데이터 가져오기 [SheetJS, 엑셀 파일 다루는 라이브러리]
  • [JavaScript] Date 객체 활용하여 날짜와 시간 출력하기 [자바스크립트 날짜, 시간 format 지정하기]
  • [JavaScript] 반복문 for of와 for in [알아두면 유용한 자바스크립트의 또 다른 반복문]
  • [JavaScript] 객체를 배열로 바꾸는 방법 [Object.keys(), Object.values(), Object.entries()]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    jsp
    자바스크립트
    백준 티어
    html
    Java
    javascript
    일상
    프로그래밍
    코딩 테스트
    BOJ
    Error Note
    Project
    Database
    백준
    SQL
    CSS
    Oracle
    코딩
    꿀팁
    spring
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[JavaScript] 배열과 객체의 구조 분해 할당 [배열이나 객체의 요소를 분해하여 각각의 변수에 할당]
상단으로

티스토리툴바