Card Deck Object

A Javascript object w/ shuffle functionality.

by Matthew Marcus

JavaScript

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/array/shuffle [v1.0]
function shuffle(o){ //v1.0
    for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
};

var Deck = function(){
    this.deck = [];
    var suites = ['S', 'C', 'D', 'H'];
    var faceRanks = {
        'A': 1,
        'J': 11,
        'Q': 12,
        'K': 13
    };
    
    for (var suiteIndex in suites){
        for (var i = 1; i <= 13; i++){
            var rank = i;
            for (var faceRankK in faceRanks){
                if(faceRanks.hasOwnProperty(faceRankK) && faceRanks[faceRankK] == rank){
                    rank = faceRankK;
                }
            }
            this.deck.push({suite: suites[suiteIndex], rank: rank});
        }
    }
    
    this.shuffleDeck = function(){
        this.deck = shuffle(this.deck);
    };
    
};

var myDeck = new Deck();

myDeck.shuffleDeck();

for (var cardIndex = 0; cardIndex < myDeck.deck.length; cardIndex++){
        console.log(JSON.stringify(myDeck.deck[cardIndex]));
    }