The below code will crash my browser if the number of decks is more than one. What can I do to resolve this? Disabling the shuffle does not seem to have any impact. I tried putting it JSFiddle and that also crashes.
function shuffleDeck(jokers) {
let deck = [
'♥A', '♥2', '♥3', '♥4', '♥5', '♥6', '♥7', '♥8', '♥9', '♥T', '♥J', '♥Q', '♥K',
'♦A', '♦2', '♦3', '♦4', '♦5', '♦6', '♦7', '♦8', '♦9', '♦T', '♦J', '♦Q', '♦K',
'♣A', '♣2', '♣3', '♣4', '♣5', '♣6', '♣7', '♣8', '♣9', '♣T', '♣J', '♣Q', '♣K',
'♠A', '♠2', '♠3', '♠4', '♠5', '♠6', '♠7', '♠8', '♠9', '♠T', '♠J', '♠Q', '♠K'
];
if (jokers) {
for (i = 0; i < jokers; i++) {
deck.push('☆');
}
}
for (let i = deck.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[deck[i], deck[j]] = [deck[j], deck[i]];
}
return deck;
}
function generateRandomDeck() {
let jokers = document.getElementById('cardsInputNumberOfJokers').value;
let numberOfDecks = document.getElementById('cardsInputNumberOfDecks').value;
currentArray = [];
for (i = 0; i < numberOfDecks; i++) {
let deck = shuffleDeck(jokers);
currentArray = currentArray.concat(deck);
}
console.log(`generating ${numberOfDecks} deck(s)`);
console.log(currentArray);
}
generateRandomDeck();
<input type="text" value="2" id="cardsInputNumberOfJokers" />
<input type="text" value="2" id="cardsInputNumberOfDecks" />