underbar shuffle

최찬호·2021년 2월 22일

주어진 배열내의 요소들의 순서를 무작위로 바꾸는 함수.
[arr[0], arr[1], arr[2]] ==> [arr[n], arr[n], arr[n]]
ex) [1, 2, 3] ==> [1, 2, 3] or [1, 3, 2] or [2, 1, 3] or
[2, 3, 1] or [3, 1, 2] or [3, 2, 1]

 
_.shuffle = function (arr) {
  // shuffle함수를 선언
  let arrCloned = arr.slice();
  // 변수 arrCloned선언하고 얕은복사본을 변수에 할당
  for (let fromIdx = 0; fromIdx < arr.length; fromIdx++) { 
    //배열의 요소의 접근
    const toIdx = Math.floor(Math.random() * arr.length);
    // toIdx변수선언  난수와 배열의 길이를 곱하고 정수로 반환한값을 변수에 할당.
    let temp = arrCloned[fromIdx];
    arrCloned[fromIdx] = arrCloned[toIdx];
    arrCloned[toIdx] = temp;
  }// temp선언 값들을 재할당
  return arrCloned;
}

사용된 문법

Math.floor()는 주어진 수 이하의 가장 큰 정수를 반환한다.

Math.random()은 0이상 1미만의 랜점숫자를 생성

profile
백엔드개발자가되기위해 노력하고있습니다.

0개의 댓글