2015-07-20 36 views
-1

我想二两阵列相结合,使卡全甲板看起来像这样:两个数组组合成值对进行纸牌全甲板

[{card: "A", suit: "d"}, {card: "A", suit: "c"}, {card: "A", suit: "s"}, {card: "A", suit: "h"}, {card: "2", suit: "d"}.....] 

....这是什么我至今:

function newDeck(ranks, suits){ 
var ranks = [ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] 

var suits = ["d", "c", "s", "h"] 

var deck= [] 

    for (i = 0; i < suits.length; i++) { 

    for (j = 0; j < ranks.length; j++) { 

     this.deck[ranks.length*i+j] = new Card(ranks[j], suits[i]); 
    } 
} console.log(newDeck) 
} 
+0

尽量不要,因为它使人们难以做出修改之前发布的答案感太多编辑你的问题。相反,只需在原始帖子下面添加其他信息:) – GregH

+0

http://stackoverflow.com/questions/4331092/finding-all-combinations-of-javascript-array-values – ssnobody

回答

1

使用Array.forEach你可以做以下的更新一起帮助:

var ranks = [ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]; 
var suits = ["d", "c", "s", "h"]; 
var deck= []; 
suits.forEach(function(suit){ 
    ranks.forEach(function(rank){ 
    deck.push(new Card(rank, suit)); 
    }) 
}); 

编辑:和万一你没有写卡方法尚未:

function Card(rank, suit){ 
    this.card = rank; 
    this.suit = suit; 
} 
+0

这真了不起!谢谢! – Crystal

0

如果你把两个数组,你将有一个数组:

["A","2","3","4","5","6","7","8","9","10","J","Q","K","d","c","s","h"] 

这并不代表一个FUL l卡片组,而使用嵌入式for循环打印出卡片,因此我不认为你只是想将一个数组添加到另一个数组中。你能提供更多关于你想用数组做什么的背景吗?

然而,要回答你的问题:如果你要追加两个数组,你可以使用:

var appendedArray = ranks.concat(suits); 

这将导致上述

上述的阵列有关更新的问题是:你被称为“新卡(行列[j],套装[i]);”你有没有制作一个卡片构造函数,这是有效的?如果是这样,如果构造函数与您使用它的方式相符,则代码应该是正确的。发布的代码,构造函数应该是一个有什么发给你正面临

+1

是的我想通过这两个数组循环创建值代表这样一副完整的一副扑克牌:[{card:“A”,suit:“d”},{card:“A”,suit:“c”},{card:“A”,suit:“s “},{card:”A“,suit:”h“},{card:”2“,suit:”d“} .....] – Crystal

+0

如果是这样的话请看看:http: //www.brainjar.com/js/cards/,它为你提供了一个很好的例子。简而言之,您需要通过构造函数创建卡对象来表示卡。如果您发现此信息有帮助,请立即投票/接受 – GregH

相关问题