기본 콘텐츠로 건너뛰기

[Javascript ES6] Spread(...) 연산자 활용법

Spread 연산자는 ES6에서 도입되었다. 
Spread는 ...을 변수 앞에 붙여서 사용하는데, 배열이나 문자열같이 반복 가능한 내용들을 각각의 요소(element)로 풀어 헤쳐준다. 

예시를 통해 살펴보자.
 
1
2
const positive = [1, 2, 3, 4];
console.log(positive);

아래와 같이 평범하게 array가 출력된다.

이번에는 positive 변수명 앞에 ...을 붙여서 spread를 사용해서 출력해본다.
 
1
console.log(...positive);

이번에는 array가 그대로 출력되지 않고, 각 요소(element)로 풀어 헤쳐져 출력된다.


그럼 Spread 연산자는 어떻게 활용할 수 있을까?
배열들을 합치는데 사용하면 편리하다.
 
const positive = [1, 2, 3, 4];
const negative = [-1, -2, -3, -4];

const number = [...negative, ...positive];

console.log(number);
 
위와 같이 2개의 array를 Spread 연산자를 이용해 간단하게 합칠 수 있다. 결과는 아래와 같다.


만약 Spread 연산자를 쓰지 않고 바로 합치게 되면 아래와 같이
array 속에 각각의 array가 존재하는 방식으로 합쳐지게 된다.


Spread 연산자는 Array 뿐만 아니라, Object를 합치는 데에도 활용할 수 있다.

const name = {"firstName": "Namu", "lastName": "Kim"};
const bio = {"height": 170, "age": 30};

const userInfo = {...name, ...bio};

console.log(userInfo);

위와 같이 2개의 object를 Spread를 이용해서 합치게 되면 아래와 같다.


object를 합칠 때에도 spread를 이용하지 않으면 각각의 object가 element로 들어가게 된다.



object에서의 다른 활용 법을 알아보자.

spread를 이용하면 object 변수의 선언을 깔끔하게 할 수 있다.
value가 있을 경우 key를 추가하고, value가 없을 경우에는 key를 추가하지 않도록 할 수 있다.

let price = "";

let product = {
  name: "apple",
  ...(price !== "" && {price})
};

console.log(product);

위 코드를 실행시키면 결과는 아래와 같다. 


price !== "" 가 false이기 때문에 false를 반환하고, object에는 값이 추가되지 않는다.

그럼 price의 값이 있으면 어떻게 될까?

price = 1000;

let product = {
  name: "apple",
  ...(price !== "" && {price})
};

console.log(product);

위 코드를 실행시면 결과는 아래와 같다.


price !== "" 가 true이기 때문에 {price}를 반환하고 spread가 {price}의 element를 풀어 헤쳐서 추가해준다.

끝.

댓글

이 블로그의 인기 게시물

웨딩 드레스 스케치 도안

웨딩 드레스샵 투어를 다니면서 샘플로 드레스를 입는 경우에는 드레스 사진을 찍지 못하게 하는 샵이 많다. ​ 그래서 투어를 돌고 나면 어떤 샵의 어떤 스타일이 신부에게 잘 어울렸는지 헷갈릴 수가 있다. ​ 하지만 투어를 다닐 때 드레스샵에서 입은 드레스의 특징과 느낌을 잘 기록하면 샵을 선택하는 데 도움이 될 수 있다. ​ 드레스 투어를 다닐 때 드레스를 기록할 스케치 도안은 아래 링크에서 확인/다운로드 할 수 있다. 웨딩 드레스 스케치 도안 확인/다운로드 하기 투어를 마친 후 드레스샵과 계약을 하고, 드디어 본식 드레스를 고를 때에는 사진을 찍을 수 있는 경우가 많다. ​ 이 땐 사진을 잘 찍어서 어떤 드레스를 입을지 잘 선택하도록 하자. ​ ​

파이썬(Python)을 이용한 선형 회귀분석(linear regression)

파이썬의 statsmodels 라이브러리를 이용해 간단하게 선형 회귀분석을 해볼 수 있다. 예시를 통해 살펴보자. 먼저 아래와 같이 예시 데이터프레임을 만든다. 1 2 3 4 5 6 7 8 9 10 11 12 import pandas as pd height = [ 170 , 168 , 177 , 181 , 172 , 171 , 169 , 175 , 174 , 178 , 170 , 167 , 177 , 182 , 173 , 171 , 170 , 179 , 175 , 177 , 186 , 166 , 183 , 168 ] weight = [ 70 , 66 , 73 , 77 , 74 , 73 , 69 , 79 , 77 , 80 , 74 , 68 , 71 , 76 , 78 , 72 , 68 , 79 , 77 , 81 , 84 , 73 , 78 , 69 ] body = pd . DataFrame( { 'height' : height, 'weight' : weight } ) body . tail() 위 코드에 대한 설명은 "파이썬(Python) Pandas를 이용한 데이터프레임(DataFrame) 만들기" 포스팅을 통해 확인할 수 있다. 위 코드를 Jupyter Notebook을 통해 실행해보면 아래와 같이 데이터 프레임이 만들어진 것을 확인할 수 있다. 선형 회귀분석은 아래와 같은 가정을 만족해야 한다. 선형 회귀분석을 할 때에는 데이터가 아래의 가정을 따르는지 먼저 생각해보는 습관을 기르자. - 변수의 선형 상관관계 : 선형 회귀분석은 종속변수(Y)와 독립변수(X)가 선형의 상관 관계를 가지는 것을 가정한다. 선형의 상관관계가 아닐 경우, 다른 회귀분석 방법을 사용하거나, 새로운 변수를 추가하거나, 기존의 변수를 로그, 지수등의 방법으...

파이썬(Python)을 이용한 피어슨 상관계수 구하기

피어슨 상관계수(Pearson correlation coefficient)는 두 변수 간의 상관관계를 확인하기 위한 가장 기본적인 방법이다. 피어슨 상관계수를 사용할 때 주의해야할 사항은 아래와 같다. - 상관관계가 인과관계를 의미하는 것은 아니다. 단순히 두 변수의 연관성을 확인하는 것이다. - 두 변수가 정규분포일 때 잘 작동한다.  - 이상치(outlier)에 민감하므로, 이상치는 제거하는 것이 좋다. - 두 변수가 완전히 동일하면 피어슨 상관계수는 1.0이다. 완전히 반대방향으로 동일하면 -1.0, 전혀 상관 없으면 0이다. 세부적인 해석은 아래와 같이 한다. - -1.0과 -0.7 사이이면, 강한 음적 선형관계 - -0.7과 -0.3 사이이면, 뚜렷한 음적 선형관계 - -0.3과 -0.1 사이이면, 약한 음적 선형관계 - -0.1과 +0.1 사이이면, 거의 무시될 수 있는 선형관계 - +0.1과 +0.3 사이이면, 약한 양적 선형관계 - +0.3과 +0.7 사이이면, 뚜렷한 양적 선형관계 - +0.7과 +1.0 사이이면, 강한 양적 선형관계 파이썬을 통해 피어슨 상관계수를 쉽게 구할 수 있다. 예시를 통해 알아보자. height, weight의 두 변수를 가지는 body라는 DataFrame을 만들었다. DataFrame을 만드는 과정은 아래의 포스트에서 확인할 수 있다.  "파이썬(Python) Pandas를 이용한 데이터프레임(DataFrame) 만들기" body 데이터프레임으로 피어슨 상관계수를 구하는 코드는 아래와 같다.  1 2 corr = body . corr(method = 'pearson' ) corr Jupyter Notebook으로 구하면 아래와 같은 결과를 얻는다. 표의 행과 열을 살펴보면 "height - height", "weight - weight"는 1이...