Javascript- Lodash shuffle vs. Math.Random()

我正在用Javascript编写一个简单的BlackJack游戏.到目前为止,我有一个像这样的数组:

var deckArray = [ "card1", "card2",...,"card52" ]

我有一个“交易”功能设置如下:

var deal = function(){
   var card = Math.floor(Math.random() * deckArray.length);
   return deckArray.splice(card,1)[0];
};

由于我已经使用Math.random从deckArray中随机选择,对我来说如何将Lodash这样的“shuffle”函数加入其中是多余的?

var shuffle = function(){
  deckArray = _.shuffle(deckNames);
};

解决方法:

我想会的.使用真卡,我们将牌组洗牌,然后从牌组顶部挑选一些牌.这是您可能正在使用shuffle函数进行的操作,从而对现实世界的使用进行建模.

使用Math.Random(),您将从一个未洗牌的牌组中随机挑选一张牌.这里的关键是随机性(这不是真正的随机顺便说一句).因此,虽然这不是在现实世界使用之后建模的,但最终结果是相同的.

我建议使用Math.Random(),因为它会比使用_.shuffle(Fisher-Yates)算法更快.

上一篇:VisualSearch.js:VisualSearch.js(Faceted Searching)是否有一个vanilla Javascript替代品?


下一篇:javascript – 递归更改数组结果