JavaScript에서 배열을 섞는 방법
3989 단어 javascript
사용자 정의 정렬
JavaScript에서 배열을 섞는 첫 번째이자 가장 간단한 방법은
.sort()
에 사용자 정의 함수를 제공하는 것입니다.const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const shuffledArray = array.sort((a, b) => 0.5 - Math.random());
우리가
.sort()
에 전달한 함수는 배열에서 항목을 '위' 또는 '아래로' 이동하기 위해 양수 또는 음수를 찾고 있으므로 각 항목은 어느 한 방향으로 이동할 가능성이 있어 셔플 배열을 제공합니다. 항목의.이것은 거칠고 준비된 접근 방식에서는 작동하지만 진정한 무작위 셔플을 제공하지 않을 수 있습니다.
위의 기술에 대해 약간의 연구를 수행하면(this article 확인) 사용자 지정 정렬 기능을 사용하는 데 결함이 있음을 알 수 있습니다. .
배열을 섞고 항목을 무작위로 배포해야 하는 경우 Fisher-Yates algorithm 을 구현해야 합니다.
피셔-예이츠 알고리즘
다행히도 너무 복잡하지 않습니다.
const shuffleArray = array => {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
const temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
보시다시피 배열(끝에서 시작까지)을 반복하고 배열에서 임의의 항목을 선택하고 현재 반복의 항목으로 교체하는 경우입니다.
위의 함수를 사용하여 JavaScript에서 배열을 섞고 매번 임의의 결과를 얻을 수 있습니다.
Reference
이 문제에 관하여(JavaScript에서 배열을 섞는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codebubb/how-to-shuffle-an-array-in-javascript-2ikj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)