Frontend Develop/JavaScript

[JavaScript] Spread Operator 전개 연산자

효니킴 2024. 1. 10. 01:32

 

  • 전개 연산자는 ECMAScript 2015에서 새롭게 추가
  • 특정 객체 또는 배열의 값을 다른 객체, 배열로 복제하거나 옮길때 사용

 

배열조합

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [7,8,9];

cont arrWrap = arr1.concat(arr2,arr3);

console.log(arrWrap); // [1,2,3,4,5,6,7,8,9]

 

위에 배열조합을 전개 연산자 방식 사용

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [7,8,9];

const arrWrap = [...arr1, ...arr2, ...arr3];

console.log(arrWrap); // [1,2,3,4,5,6,7,8,9]

 

 

또 다른 방법으로

push.apply

const arr1 = [1,2,3];
const arr2 = [4,5];

Array.prototype.push.apply(arr1, arr2);

console.log(arr1); // [1,2,3,4,5]

 

전개 연산자를 사용

const arr1 = [1,2,3];
const arr2 = [4,5];

arr1.push(...arr2);

console.log(arr1); // [1,2,3,4,5]

 

 

객체조합

객체 안에 객체 자체가 들어감

const obj1 = {
	a:'A',
    b:'B'
};

const obj2 = {
	c: 'C',
    d: 'D'
}

const objWrap = {obj1, obj2};

console.log(objWrap);

// {obj1: {a:'A',b:'B'}, obj2: {c:'C',d:'D'}}

 

전개연산자를 사용하면 객체 자체가 아닌 각각의 값이 할당 됨

const objWrap = {...obj1, ...obj2};
console.log(objWrap);

// {a:'A', b:'B', c:'C', d:'D'}

 

 

기존 배열을 보존

 

원본 배열까지 역순 변경

const arr1 = [1,2,3];
const arr2 = arr1.reverse();

console.log(arr1); // [3,2,1];
console.log(arr2); // [3,2,1];

 

전개연산자를 사용해서 1,2,3을 넣어주면 원본 배열 유지

const arr1 = [1,2,3];
const arr2 = [...arr1].reverse();

console.log(arr1); // [1,2,3]
console.log(arr2); // [3,2,1]