我正在尝试构建一副扑克牌并删除其中的一张,并将它们各自的名称,套装和值属性作为单独的元素返回。我创建了一个卡片对象,每个卡片对象都有一个“名称”,“套装”和“值”,并将其中的52个放入“Deck”数组中。我想从甲板阵列中抽出一张“卡牌”,并将其各自的属性用于纸牌游戏,但我不确定如何正确执行此操作。下面是我试图做到这一点的一个例子。返回数组的属性
//CARD OBJECT
function card(name, suit, value) {
this.name = name;
this.suit = suit;
this.value = value;
}
//NEW DECK ARRAY
var cardsInDeck = new Array();
//INDIVIDUAL CARD OBJECTS IN THE DECK ARRAY
var aceSpades = new card("Ace", "Spades", 1);
cardsInDeck.push(aceSpades);
var twoSpades = new card("Two", "Spades", 2);
cardsInDeck.push(twoSpades);
var threeSpades = new card("Three", "Spades", 3);
cardsInDeck.push(threeSpades);
var fourSpades = new card("Four", "Spades", 4);
cardsInDeck.push(fourSpades);
var fiveSpades = new card("Five", "Spades", 5);
//REPEATED FOR ALL 52 CARDS
//SHUFFLE CARDS
var shuffle = function() {
var theLength = cardsInDeck.length - 1;
var toSwap;
var tempCard;
for (var i = theLength; i > 0; i--) {
toSwap = Math.floor(Math.random() * i);
tempCard = cardsInDeck[i];
cardsInDeck[i] = cardsInDeck[toSwap];
cardsInDeck[toSwap] = tempCard;
}
}
shuffle();
//DRAW ONE CARD
var drawOne = function() {
var card = cardsInDeck.slice(cardsInDeck.length - 1);
cardsInDeck.length--;
return card;
}
console.log(drawOne());
我可以得到一个“卡”来绘制,但它返回一个数组(1)具有每张卡的名称,西装和价值......但我不知道如何让那些属性分开并用它们来构建游戏。我相信这很简单,我忽略了一些小的东西,但是我对编程颇为陌生,并没有找到特别适用于这个问题的解决方案。
任何援助将不胜感激。
这是一种令人困惑的措辞,但也许你正在寻找的是数组映射运算符? 副本评论:我希望你实际上并没有用手写出52个相对顺序的对象,而不是编写一些循环...... – bryan60
你只是想从函数中返回card [0]吗? ['slice'返回一个数组,所以如果你需要卡对象,你需要抓住第一个元素](https://jsfiddle.net/21y1crqe/)。 – Andy
对不起,我们希望从“Deck”中随机抽取一张“卡片”,并使用这些卡片的值创建百家乐游戏。我只是坚持如何才能获得每张卡的“价值”并将其分配给一个变量。 – BaracudaBill