Новое для 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
Итак, я вдумался в это. Я не понимаю, что для меня «[0]» избыточно, поскольку мы просто берем один элемент из массива, так как диапазон сплайсинга равен '(i, 1)'. – Ludo757
'splice' возвращает массив. 'push' хочет одно значение. Одноэлементный массив - это не то же самое, что и его элемент. Это похоже на попытку положить мешочек с томатом в ваш блендер, утверждая, что «ну, мне нужен один помидор для этого соуса, а в сумке только один помидор, оставшийся в нем, так почему бы и нет?». Сначала вам нужно вытащить помидор из сумки, потому что эти пластиковые сетчатые волокна немного на стороне жевательной стороны. – Amadan