JS에 익숙하며 현재 대학에서 배우고 있습니다. 현재 진행중인 JS 프로젝트에서는 메모리 카드 게임을 만들고 있습니다. 나는 무작위로 카드를 뒤섞는 방법을 생각하기 시작했고, 나는 Fisher-Yates Shuffle 알고리즘이 수행하는 것과 비슷하다. 두번째 프로그램은 this page이다. 그러나, 나는 스플 라이스 방법 후에 정확하게 [0]이 무엇을하는지 이해하지 못합니다. 배열을 이동/압축하는 것이 무엇입니까? 그렇다면 다른 예제/문서를 찾을 수 없습니다.Fisher-Yates Shuffle in Javascript
function shuffle(array) {
var copy = [], n = array.length, i;
// While there remain elements to shuffle…
while (n) {
// Pick a remaining element…
i = Math.floor(Math.random() * n--);
// And move it to the new array.
copy.push(array.splice(i, 1)[0]);
}
return copy;
}
@Amadan! – Ludo757
그래서 나는 그것에 더 많은 생각을했습니다. 필자가 얻지 못하는 것은 스플 라이스의 범위가'(i, 1)'이기 때문에'[0]'이 중복된다는 것입니다. – Ludo757
'splice'는 배열을 반환합니다. 푸시는 하나의 가치를 원한다. 1 요소 배열은 요소와 같은 것이 아닙니다. 믹서기에 토마토와 함께 메쉬 백을 넣으려고하는 것과 같습니다. "글쎄, 나는이 소스를 위해 하나의 토마토가 필요하고, 가방에는 오직 토마토 하나만 남았고, 왜 그렇게하지 않았 느냐?". 그 플라스틱 메쉬 섬유가 쫄깃한면에 약간 있기 때문에 먼저 토마토를 자루에서 꺼내야합니다. – Amadan