• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

혹시나 공부하시는 분들 중 도움이 될까 소스 공유 드려요~

19.07.11 10:48 작성 조회수 70

3

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

// min (포함) 과 max (포함) 사이의 임의 정수를 반환
// Math.round() 를 사용하면 고르지 않은 분포를 얻게된다!
// https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/random 에서 가져옴 ;;
function getRandomIntInclusive(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function getRandomNumber() {
  // set
  let numSet = new Set();
  let {count, maxNumber} = SETTING;
  
  // 6개의 번호 추출을 위한 반복
   while(numSet.size < count) {
    // 추출된 번호인지 확인
    let tmpNum = getRandomIntInclusive(1, maxNumber);
    if (!numSet.has(tmpNum)) {
      numSet.add(tmpNum);
    }
  }
  return [...Array.from(numSet)];
}

console.log(getRandomNumber());
/*
[41, 4, 12, 26, 18, 8]
*/

답변 1

답변을 작성해보세요.

0

Hyungsung Ham님의 프로필

Hyungsung Ham

2019.08.27

오호 return [...Array.from(numSet)]; 이렇게 쓰면 편하게 어레이형태로 반환할 수 있겠군요. 배워갑니다~