Programming/JavaScript

[인프런] 모던 자바스크립트(javascript) 개발을 위한 ES6 강좌 / 실습예제 2 - Destructuring 과 Set 을 활용한 로또 번호 생성기

 

 

문제 ) 

 

다음 조건을 이용하여 Lotto 번호 추출기 만들기

1. 유일한 값을 추출하는 과정에서 Set을 사용한다.

2. getRandomNuber 함수에 변수를 전달하는 과정에서 destructuring을 사용한다.


const SETTING = {
  name :"LUCKY LOTTO!",
  count : 6,
  maxNumber : 45
}

function getRandomNumber(maxNumber){
  //랜덤한 유일한 숫자값을 추출
  let random = (Math.floor(Math.random() * maxNumber)+1);
  return random;
}

const {maxNumber, count} = SETTING;
let setNumber = new Set();
setNumber.clear();

for(let i = 0, j = 1; i < count; i++, j++){
  setNumber.add(getRandomNumber(maxNumber));

  if(setNumber.size !== j){
      i--;
      j--;
  }
  
}

console.log(setNumber);

결과값 매우 잘나온다 __b 

 

자료구조 Set

 

Set() 은 value 들로 이루어진 컬렉션(“집합”이라는 표현이 적절)

Array 와는 다르게 Set 은 같은 value 를 2번 포함할 수 없기 때문에 이미 존재하는 값을 추가할 수 없다.(에러 안뜸)

 

추가 상세내용 : https://medium.com/@hongkevin/js-5-es6-map-set-2a9ebf40f96b


구조분해문법 destructuring

 

구조화된 배열 또는 객체를 Destructuring(비구조화, 파괴)하여 개별적인 변수에 할당하는 것이다.

배열 또는 객체 리터럴에서 필요한 값만을 추출하여 변수에 할당하거나 반환할 때 유용하다.

 

1. 배열 디스트럭처링 (Array destructuring)

배열의 각 요소를 배열로부터 추출하여 변수 리스트에 할당한다. 이때 추출/할당 기준은 배열의 인덱스이다.

       const arr = [1, 2, 3];

       const [one, two, three] = arr;

 

2. 객체 디스트럭처링 (Object destructuring)

객체의 각 프로퍼티를 객체로부터 추출하여 변수 리스트에 할당한다. 이때 할당 기준은 프로퍼티 이름(키)이다.

       var obj = {
            a: 10,
            b: 20,
            c: 30
       };

       var { a, b, c } = obj; 

 

출처 : https://poiemaweb.com/es6-destructuring