0

何らかの理由で、2番目のループは1から始まります。最初のループは1から始まるforことを私は理解しています。それはそうなることを意味します。ただし、ループは0から始まると言っていても、とにかく1から始まります。forij for

var findWinners = function (playersRay) {
    var players = playersRay;
    var results = new Array();

    //getdealers dealers hand and info
    var dealerHand = players[0]
    var dealerScore = dealerHand.getScore()
    var dealerBust = dealerScore > 21 ? true : false;

    //loops through all players; skips dealer (array position 0)
    var numPlayers = players.length;
    for (var i=1; i<numPlayers; i++) {
            //loops through all the players hands.
            //player might have more than 1 hand if he splits his cards
        var player = players[i];
        var numHands = player.length;
        results[i] = new Array();

        for (var j=0; j<numHands; j++)
            var handScore = player[j].getScore();

            if (handScore > 21) {
                results[i][j] = false;              
            }
            else if (dealerScore > 21) {
                results[i][j] = true;
            }
            else if (handScore > dealerScore) {
                results[i][j] = true;
            }
            else {
                results[i][j] = false;
            }
    }
    return results;
}

これを返します:[undefined, [undefined, true]]

これを返す必要があります:[undefined, [true]]

知りたい場合に備えて。サンプルplayersRayは次 [Object, [Object]]
のとおりです。オブジェクトには、ディーラーまたはプレーヤーのブラックジャックの手に関する情報があります。

完全なコードへのリンク:https ://docs.google.com/open?id = 0BxvwY0fUFc3aMTdTOXU0b0ttamM

4

1 に答える 1

1

Javascript では、ステートメントを囲む中括弧を省略すると、最初の行のみが実行されます。この動作では、最初のインデックスのみが省略されているように見えますが、2 つしかないと思われます。したがって、反復するためにさらに追加すると、実際には最後のインデックスを実行しているだけであることに気付くはずです。

例えば:

for (var i = 0; i < 10; i++)
    console.log('First line: ', i);

    console.log('Second line: ', i);

http://jsfiddle.net/MMQD8/

与えます:

First line: 0
First line: 1
First line: 2
First line: 3
First line: 4
First line: 5
First line: 6
First line: 7
First line: 8
First line: 9
Second line: 10

MDNは次のように説明しています

声明

条件が true と評価される限り実行されるステートメント。ループ内で複数のステートメントを実行するには、ブロック ステートメント ({ ... }) を使用してそれらのステートメントをグループ化します。

于 2012-09-03T17:28:52.130 に答える