2015-09-24 71 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次服)

相關問題