我正在嘗試構建一副撲克牌並刪除其中的一張,並將它們各自的名稱,套裝和值屬性作爲單獨的元素返回。我創建了一個卡片對象,每個卡片對象都有一個「名稱」,「套裝」和「值」,並將其中的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