Javascript 如何从一个阵列中获取数据,随机选取一半,而不必选取两次同一张卡,然后将它们移动到另一个阵列?

Javascript 如何从一个阵列中获取数据,随机选取一半,而不必选取两次同一张卡,然后将它们移动到另一个阵列?,javascript,arrays,Javascript,Arrays,我正在尝试制作一个基本/简单的战争卡游戏,我正在研究Javascript部分。我一直在研究如何随机抽取一半的牌值,而不是一次又一次地拾取相同的牌值,将它们移动到另一个数组中以模拟洗牌(随机拾取),并将它们移动到第二个数组中(或多或少模拟交易) 我该如何编写代码来完成我现在想要的一切? 另外,请尽量使您的答案代码尽可能简单,以便我能更容易地理解它。使用给定的洗牌方法,尝试此选项 var DeckofCards=新数组(‘2D’、‘2H’、‘2S’、‘2C’、‘3D’、‘3H’、‘3S’、‘3C’

我正在尝试制作一个基本/简单的战争卡游戏,我正在研究Javascript部分。我一直在研究如何随机抽取一半的牌值,而不是一次又一次地拾取相同的牌值,将它们移动到另一个数组中以模拟洗牌(随机拾取),并将它们移动到第二个数组中(或多或少模拟交易)

我该如何编写代码来完成我现在想要的一切?
另外,请尽量使您的答案代码尽可能简单,以便我能更容易地理解它。

使用给定的洗牌方法,尝试此选项

var DeckofCards=新数组(‘2D’、‘2H’、‘2S’、‘2C’、‘3D’、‘3H’、‘3S’、‘3C’、‘4D’、‘4C’、‘5D’、‘5S’、‘5C’、‘6D’、‘6S’、‘6C’、‘7D’、‘7H’、‘7S’、‘7C’、‘8D’、‘8H’、‘9S’、‘9S’、‘9C’、‘10D’、‘10S’、‘10S’、‘10C’、‘11D’、‘11H’、‘11S’、‘11C’、‘12D’、‘12H’、‘12S’、‘12C’、‘12C’、‘13D’、‘13C’、‘13C’;
函数洗牌(数组)
{
var currentIndex=array.length,temporaryValue,randomIndex;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex)
{
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}
var输出=洗牌(DeckofCards.slice)(DeckofCards.length/2);

console.log(输出);
请分享您迄今为止的尝试。
var DeckofCards = new Array('2D', '2H', '2S', '2C', '3D', '3H', '3S', '3C', '4D', '4H', '4S', '4C',
                    '5D', '5H', '5S', '5C', '6D', '6H', '6S', '6C', '7D', '7H', '7S', '7C',
                    '8D', '8H', '8S', '8C', '9D', '9H', '9S', '9C', '10D', '10H', '10S', '10C',
                    '11D', '11H', '11S', '11C', '12D', '12H', '12S', '12C',
                    '13D', '13H', '13S', '13C', '14D', '14H', '14S', '14C')