I am trying to make a blackjack game with html/css/javascript, but when I trigger my shuffleDeck function, 1 card in my deck becomes undefined.
Could anyone explain the reasoning for this?
let cardValues = ["A", 1, 2, 3, 4, 5, 6, 7, 8, 9, "J", "Q", "K"];
let cardSuits = ["hearts", "spades", "clubs", "diamonds"];
let deck = new Array();
let players = new Array();
window.onload = function() {
makeDeck();
shuffleDeck(deck);
console.log(deck);
}
function makeDeck() {
deck = new Array();
for (let i = 0; i < cardValues.length; i++)
{
for(let j = 0; j < cardSuits.length; j++)
{
let weight = parseInt(cardValues[i]);;
if (cardValues[i] == "J" || cardValues[i] == "Q" || cardValues[i] == "K")
{
weight = 10;
} else if (cardValues[i] == "A")
{
weight = 11;
}
let card = {cardValue: cardValues[i], cardSuit: cardSuits[j], cardWeight: weight}
deck.push(card)
}
}
}
function shuffleDeck(deck) {
for (let i = deck.length; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[deck[i], deck[j]] = [deck[j], deck[i]];
}
}