2015-09-24 49 views
-2

这是代码。当我运行的newDecklength是0,所以很显然,没有Cards被添加到它...为什么我的卡片组生成代码返回一个空数组?

function Card(number, suit) { 
    this.number = number; 
    this.suit = suit; 
} 

var deck = []; 

function Deck() { 
    for (i=2; i>13; i++) { 
     for (j=1; j>4; j++) { 
      var newCard = new Card(i,j); 
      deck.push(newCard); 
     } 
    } 
    return deck 
} 

var newDeck = new Deck(); 
console.log(newDeck.length); 
+1

为什么甲板是一个构造函数? – Quentin

+0

你期望程序产生什么样的输出? – Mike

+0

@Quentin你会改变它createDeck()? – Zetland

回答

7

你的循环是错误的,你要检查,如果数量少于而不是大于:

function Deck() { 
    for (i=2; i<13; i++) { //Change ">" with "<" 
     for (j=1; j<4; j++) { //Change ">" with "<" 
      var newCard = new Card(i,j); 
      deck.push(newCard); 
     } 
    } 
    return deck 
} 
3

您的for循环中的索引使循环永远不会执行。

他们目前的 “i> 13” 和 “j> 4”,而应该是 “我< = 13” 和 “j < = 4”(除非你只想要2-Q和3次服)

相关问题