【发布时间】:2018-09-30 13:33:00
【问题描述】:
我正在做一个简单的二十一点游戏,但我卡在从对象返回。我的目标是返回所有 52 张卡片,但我得到的只是最后一个数组。
let suits = ['Hearts', 'Clubs', 'Diamonds', 'Spades'],
values = ['Ace', 'King', 'Queen', 'Jack',
'Ten', 'Nine', 'Eight', 'Seven', 'Six',
'Five', 'Four', 'Three', 'Two'
];
let deck = [];
function createDeck(deck) {
for (let i = 0; i < values.length; i++) {
for (let j = 0; j < suits.length; j++) {
let card = {
values: values[i],
suit: suits[j]
};
deck.push(card);
}
}
return deck;
}
function cardName(deck) {
let name = [];
for (let i = 0; i < deck.length; i++) {
name = deck[i].values + " of " + deck[i].suit;
}
return name;
}
我尝试了一个对象数组,调试了很多次,双循环,for...in 循环,但都没有奏效。我最好的方法是返回最后一个数组,即“黑桃二”。 非常感谢一些指导
【问题讨论】:
-
name.push(deck[i].values + " of " + deck[i].suit); -
cardName(deck)应该做什么?我希望看到像cardName(card)这样的函数,但不清楚名为cardName的函数应该对整个卡组做什么。你想要所有卡片名称的数组吗?在这种情况下,只需将循环中的name =更改为name.push(,就像在另一个循环中将卡片推入deck一样。
标签: javascript arrays object blackjack