🐔JavaScript
배열 디스트럭처링 할당 (구조분해할당)
egg.silver
2023. 8. 25. 17:26
디스트럭처링 할당(구조분해할당) :
구조화된 배열과 같은 이터러블 또는 객체를 비구조화하여 1개 이상의 변수에 개별적으로 할당함을 의미한다.
-> 배열과 같은 이터러블(반복되는 것) 또는 객체 리터럴(그냥 { }이렇게 객체 만드는 거)에서 필요한 값만 추출하여 변수에 할당할 때 유용
배열 디스트럭처링 할당
할당문의 우변은 이터러블이러야 하며, 할당 기준은 배열의 인덱스이다.
//ES5
var arr = [1, 2, 3];
var one = arr[0];
var two = arr[1];
var three = arr[2];
console.log(one, two, three); // 1 2 3
//ES6
const arr = [1, 2, 3];
const [one, two, three] = arr;
// 변수 선언 = 배열
console.log(one, two, three); //1 2 3
특징 ( 1 )
변수의 개수와 이터러블의 요소 개수가 일치할 필요는 없다.
//이터러블과 변수의 개수가 일치하는 경우
const [a, b] = [1, 2]
console.log(a, b) // 1 2
//이터러블과 변수의 개수가 불일치하는 경우 - 1
const [c, d] = [1];
console.log(c, d); // 1 undefined
//이터러블과 변수의 개수가 불일치하는 경우 - 2
const [e, f] = [1, 2, 3]
console.log(e, f) // 1 2
특징 ( 2 )
배열 디스트럭처링 할당을 위한 변수에 기본값을 설정할 수 있다.
이때, 기본값보다 할당된 값이 우선시 된다.
//변수에 기본값을 설정하는 경우
const [a, b, c = 3] = [1, 2]
console.log(a, b, c) // 1 2 3
//기본값보다 할당된 값이 우선시 되는 경우
const [d, e = 8, f = 9] = [1, 2]
console.log(d, e, f) // 1 2 9
특징 ( 3 )
배열 디스트럭처링 할당을 위한 변수에 Rest 요소를 사용할 수 있다.
단, Rest 요소는 반드시 마지막에 위치해야 한다.
// Rest 요소 사용
const [x, ...y] = [1, 2, 3];
console.log(x, y) // 1 [2, 3]