我正在尝试创建一个套牌并为面牌创建特殊规则但是这个while循环似乎什么都不做,即使我觉得我有一切正确。请帮忙。
//creates the deck
deck = [];
Ace = 1;
Jack = 10;
Queen = 10;
King = 10;
for(i = 1; i <= 52; i++) {
deck[i] = i;
}
while (i < deck.length) {
if(deck[i] == 1 || deck[i] == 14 || deck[i] == 27 || deck[i] == 40) {
deck[i] = Ace;
}
i++;
}
alert(deck);
答案 0 :(得分:4)
在for
循环后,i
将成为deck.length
,因此永远不会输入您的while
循环。它应该是另一个for
循环。
另外,请使用var
声明您的变量。隐含的全局变量很糟糕!
另外,你可以在除以13时检查剩余部分以获得aces。你可以在同一个循环中完成这两个步骤。
var deck = [];
var Ace = 1;
var Jack = 10;
var Queen = 10;
var King = 10;
for(var i = 1; i <= 52; i++) {
if(i % 13 === 1) {
deck[i] = Ace;
} else {
deck[i] = i;
}
}
alert(deck);
答案 1 :(得分:1)
你的while循环没有执行。我会在for循环后得到53的值,所以你会立即转到警报。
此外,javascript数组从0开始。你也应该组合循环。当你可以在第一个循环中完成时,没有理由再次跳过项目。