Я хочу иметь возможность нажать на кнопку ниже и перемешать карты в моей колоде карт. До сих пор я создал прослушиватель событий, который при нажатии вызывает функцию shuffleCards
, которая принимает массив. Массив, который я передал, - это тот, который предоставлен мне в упражнении, который представляет собой массив карточек.
Когда я нажимаю кнопку, ничего не происходит, я знаю, что это как-то связано с областью действия, но я этого не делаюзнаю, как изменить мой код, чтобы сделать это правильно.
Заранее спасибо.
HTML
<button type="button" id="shuffle" class="shuffle" class="btn btn-lg btn-secondary">Shuffle</button>
JAVASCRIPT
// Часть данав упражнении, которое создает колоду карт:
const suit = 'hearts';
const cardsWrapper = document.querySelector('.cards-wrapper');
function createCards() {
const cards = [];
// Create an array with objects containing the value and the suit of each card
for (let i = 1; i <= 13; i += 1) {
const cardObject = {
value: i,
suit,
};
cards.push(cardObject);
}
// For each dataObject, create a new card and append it to the DOM
cards.forEach((card, i) => {
const positionFromLeft = i * 15;
const cardElement = document.createElement('div');
cardElement.setAttribute('data-value', card.value);
cardElement.classList.add('card', `${card.suit}-${card.value}`);
cardElement.style.left = `${positionFromLeft}px`;
cardsWrapper.append(cardElement);
});
}
// часть, написанная мной
const shufflebtn = document.getElementById('shuffle');
shufflebtn.addEventListener("click", () => {
shuffleCards(cards);
})
function shuffleCards(array) {
var i = 0
, j = 0
, temp = null
for (i = array.length - 1; i > 0; i -= 1) {
j = Math.floor(Math.random() * (i + 1))
temp = array[i]
array[i] = array[j]
array[j] = temp
}
return array
}