JavaScript·

8. can you shuffle() an array?

  • #BFE.dev
  • #JavaScript
  • #Snippets

문제

배열을 인자로 받으면, 그 배열을 제자리에서 수정모든 순열이 동일한 확률로 선택되는 무작위 순열로 섞어야 한다.

풀이

1
function shuffle(arr) {
2
for(let i = 0; i < arr.length; i++){
3
const targetIndex = i;
4
const randIndex = Math.floor(Math.random() * (arr.length - targetIndex)) + targetIndex;
5
6
[arr[targetIndex], arr[randIndex]] = [arr[randIndex], arr[targetIndex]];
7
}
8
}