shuffle 해부해 보기

양종하·2020년 10월 25일
0
post-thumbnail

shuffle 풀이 과정

_.shuffle = function(arr) {
let arrCloned = arr.slice();

함수에 인자로 받은 배열을 원본에 영향을 주지 않고 새로운 배열을
만들어주는 slice 메소드를 이용해 새로운 변수를 만들어준다.

for(let fromIdx =0 ;fromIdx < arr.length; fromIdx++){
const toIdx= Math.floor(Math.random()*arr.length);

Math.random()*arr.length를 이용해 0부터 max(배열의 길이까지)
toIdx 는정수 랜덤 값을 생성한다.

let temp = arrCloned[fromIdx]
arrCloned[fromIdx] = arrCloned[toIdx]
arrCloned[toIdx] = temp;
}
return arrCloned;
}

arrCloned[fromIdx] = arrCloned[toIdx]로 만들어 줌으로
배열이 램덤한 Idx를 갖게 되고 원래 배열의 구조가아닌 인자가 본래구조와
는 다른 새로운 배열이 return 된다

이러한 shuffle은 무작위로 배열에서 임의이 값을 선택하려고 할때 자주사용되며 간단한예로 노래의 랜덤재생, 복권의 번호처럼 무작위로 선택해 셔플해 정렬하는 방법이다.

profile
내일이 더 즐거운 사람

0개의 댓글