Javascript 卡片对象的计分手

Javascript 卡片对象的计分手,javascript,Javascript,奇怪的是,现在在用替换循环的中的s之后s,它现在响应ReferenceError:expected')。它想要什么?(错误似乎出现在最后一行控制台中。日志行,因为注释它会使错误消失。)我数了数,在那一行我有2个(和2个) 您的问题似乎在这里: // This code defines the Object constructor Card, used to make the card objects var Card = function(card) { this.face = theF

奇怪的是,现在在用
替换
循环的
中的
s之后s,它现在响应
ReferenceError:expected')
。它想要什么?(错误似乎出现在最后一行
控制台中。日志
行,因为注释它会使错误消失。)我数了数,在那一行我有2个
和2个

您的问题似乎在这里:

// This code defines the Object constructor Card, used to make the card objects
var Card = function(card) {
    this.face = theFace(card);
    this.suit = theSuit(card);
    this.value = theValue(card);
};

// This code creates the Deck to be used.
var deck = [];
for ( i=0 ; i<52 ; i++ ) {
    deck.push( i );
};
for ( i=51 ; i>0 ; i-- ) {
    var random = Math.floor(Math.random()*i);
    var temp = deck[random];
    deck[random] = deck[i];
    deck[i] = temp;
};
// 0-12 is Spades.
// 13-25 is Hearts.
// 26-38 is Clubs.
// 39-51 is Diamonds.

// Now we create the hand of the player and dealer
var player = [];
var dealer = [];

// Now to deal a card to player
player.push(deck.pop());
dealer.push(deck.pop());

// and another
player.push(deck.pop());
dealer.push(deck.pop());

// function theFace gives the face of a card
function theFace( card ) {
    var faces = ["King","Ace","2","3","4","5","6","7","8","9","10","Queen","Jack"];
    return(faces[card%13]);
};

// function theValue uses 'switch' to determine points from a card
function theValue(card) {
    var value = card % 13;
    switch( value ) {

        case(0):
        case(11):
        case(12):
            value = 10;
            break;

        case(1):
            value = 11;
            break;

        default:
            value = value;
            break;

    };
    return value;
};

// function theSuit returns the suit of a card
function theSuit(card) {
    var suit;
    if(card>38) {
        suit = "Diamonds";
    }else if(card>25) {
        suit = "Clubs";
    }else if(card>12) {
        suit = "Hearts";
    }else {
        suit = "Spades";
    };
    return suit;
};

// function toObject the first (numbered) card of of a hand 
// and turns it into an Object with the desired properties
function toObject( hand ) {
    var card = hand.pop();
    if (typeof(card) !== "number") {
        hand.push(card);
    } else {
        var card = new Card (card);
        hand.unshift(card);
    };
    return hand;
};

toObject(player);
toObject(player);
toObject(dealer);
toObject(dealer);

// function scoreHandArray scores your hand
function scoreHandArray(hand) {
    var score = 0;
    for (i=0,i<hand.length,i++) {
        score = score + hand[i].value;
    };
    return score;
};

console.log( "You have the " + player[0].face + " of " + player[0].suit " and the " + player[1].face " of " + player[1].suit " for a score of " scoreHandArray(player));

for(i=0,i你最好把所有的JavaScript代码都放进去。这将帮助你清除任何可能导致问题的语法问题,并有助于实现跨浏览器兼容性。

aww,来吧!我想我已经检查过了!谢谢!不客气。查看JSLint(Mike_K发布)同样,这也很有帮助。
// This code defines the Object constructor Card, used to make the card objects
var Card = function(card) {
    this.face = theFace(card);
    this.suit = theSuit(card);
    this.value = theValue(card);
};

// This code creates the Deck to be used.
var deck = [];
for ( i=0 ; i<52 ; i++ ) {
    deck.push( i );
};
for ( i=51 ; i>0 ; i-- ) {
    var random = Math.floor(Math.random()*i);
    var temp = deck[random];
    deck[random] = deck[i];
    deck[i] = temp;
};
// 0-12 is Spades.
// 13-25 is Hearts.
// 26-38 is Clubs.
// 39-51 is Diamonds.

// Now we create the hand of the player and dealer
var player = [];
var dealer = [];

// Now to deal a card to player
player.push(deck.pop());
dealer.push(deck.pop());

// and another
player.push(deck.pop());
dealer.push(deck.pop());

// function theFace gives the face of a card
function theFace( card ) {
    var faces = ["King","Ace","2","3","4","5","6","7","8","9","10","Queen","Jack"];
    return(faces[card%13]);
};

// function theValue uses 'switch' to determine points from a card
function theValue(card) {
    var value = card % 13;
    switch( value ) {

        case(0):
        case(11):
        case(12):
            value = 10;
            break;

        case(1):
            value = 11;
            break;

        default:
            value = value;
            break;

    };
    return value;
};

// function theSuit returns the suit of a card
function theSuit(card) {
    var suit;
    if(card>38) {
        suit = "Diamonds";
    }else if(card>25) {
        suit = "Clubs";
    }else if(card>12) {
        suit = "Hearts";
    }else {
        suit = "Spades";
    };
    return suit;
};

// function toObject the first (numbered) card of of a hand 
// and turns it into an Object with the desired properties
function toObject( hand ) {
    var card = hand.pop();
    if (typeof(card) !== "number") {
        hand.push(card);
    } else {
        var card = new Card (card);
        hand.unshift(card);
    };
    return hand;
};

toObject(player);
toObject(player);
toObject(dealer);
toObject(dealer);

// function scoreHandArray scores your hand
function scoreHandArray(hand) {
    var score = 0;
    for (i=0,i<hand.length,i++) {
        score = score + hand[i].value;
    };
    return score;
};

console.log( "You have the " + player[0].face + " of " + player[0].suit " and the " + player[1].face " of " + player[1].suit " for a score of " scoreHandArray(player));
for (i=0,i<hand.length,i++) {
    score = score + hand[i].value;
};