尝试添加新方法
我正在尝试将两张牌分别添加到玩家/交易者手中,但是当我登录时:
[ { suit: '♠', value: 'A', points: 11 } ]
[ { suit: '♠', value: 'A', points: 11 },
{ suit: '♦', value: 10, points: 10 } ]
为什么我要返回3个对象而不是2个?
const dealRandomCard = () => {
return deckOfCards.splice(Math.floor(Math.random() *
deckOfCards.length), 1)[0];
}
// console.log(dealRandomCard());
for (let i = 0; i <= 2; i++) {
playerHand.push(dealRandomCard());
dealerHand.push(dealRandomCard());
console.log(playerHand);
// console.log(dealerHand);
}
答案 0 :(得分:3)
for (let i = 0; i < 2; i++) {
playerHand.push(dealRandomCard());
dealerHand.push(dealRandomCard());
console.log(playerHand);
}
您的循环应为for (let i = 0; i < 2; i++)
,而不是for (let i = 0; i <= 2; i++)
由于从0
到2
到3
... [0,1,2] = 3
的长度,这花费了额外的迭代时间。
还:return deckOfCards.splice(Math.floor(Math.random() * deckOfCards.length), 1)[0];
如果这使您超过1,则您最终将得到3,因为deck
包含1 + 2的数组,@Ricky Mo
很好地指出了这一点
答案 1 :(得分:2)
您在每次迭代中都调用console.log()
。每次添加一张卡,就打印一次。给定的输出实际上是两个数组,由两次迭代打印而成。第一张拥有1张卡,第二张拥有2张卡。仔细查看[
和]
。
第一次迭代:
[ { suit: '♠', value: 'A', points: 11 } ]
第二次迭代:
[ { suit: '♠', value: 'A', points: 11 },
{ suit: '♦', value: 10, points: 10 } ]