Javascript 如何从数组中选择多个随机元素?

Javascript 如何从数组中选择多个随机元素?,javascript,arrays,Javascript,Arrays,上面的代码从数组中选择一个随机项。但是,如何让它一次从数组中选择3个随机元素,而不是仅选择一个 例如,与其只选择three,不如选择类似于two-five-one的内容。您可以shuffle()数组,然后获取所需的第一个X项: var数组=[“一”、“二”、“三”、“四”、“五”]; var n=3; 函数洗牌(a){ for(设i=a.length;i;i--){ 设j=Math.floor(Math.random()*i); [a[i-1],a[j]=[a[j],a[i-1]]; } }

上面的代码从数组中选择一个随机项。但是,如何让它一次从数组中选择3个随机元素,而不是仅选择一个

例如,与其只选择
three
,不如选择类似于
two-five-one

的内容。您可以
shuffle()
数组
,然后获取所需的第一个
X
项:

var数组=[“一”、“二”、“三”、“四”、“五”];
var n=3;
函数洗牌(a){
for(设i=a.length;i;i--){
设j=Math.floor(Math.random()*i);
[a[i-1],a[j]=[a[j],a[i-1]];
}
}
洗牌(阵列)
console.log(array.slice(0,3))
您可以
shuffle()
the
array
然后获取所需的第一个
X
项:

var数组=[“一”、“二”、“三”、“四”、“五”];
var n=3;
函数洗牌(a){
for(设i=a.length;i;i--){
设j=Math.floor(Math.random()*i);
[a[i-1],a[j]=[a[j],a[i-1]];
}
}
洗牌(阵列)

console.log(array.slice(0,3))
您可以使用一个虚拟数组进行计数,并创建一个数组副本,然后拼接随机项,而无需对数组进行无序排列

var数组=[“一”、“二”、“三”、“四”、“五”],
result=array.slice(0,3).map(函数(){
返回this.splice(Math.floor(Math.random()*this.length),1)[0];
},array.slice());

控制台日志(结果)您可以使用虚拟数组进行计数,并使用数组的副本拼接随机项,而无需对数组进行无序排列

var数组=[“一”、“二”、“三”、“四”、“五”],
result=array.slice(0,3).map(函数(){
返回this.splice(Math.floor(Math.random()*this.length),1)[0];
},array.slice());

控制台日志(结果)
您希望它们不同吗?@Oriol是的,我希望它们不同首先创建一个数组来存储选定的项目
var items=[]
,然后您可以将其填充到一个循环中,当您选择项目时,也可以从
数组中拼接它,或者您可以使用嵌套的while循环,一个检查是否有人尝试调整这个答案:您希望它们不同吗?@Oriol是的,我希望它们不同首先制作一个数组来存储所选项目
var items=[]
,然后您可以将其填充到一个循环中,当您选择项目时,也可以从
array
将其拼接,或者您可以使用嵌套while循环,检查一下是否有人尝试调整这个答案:总是很高兴看到你的解决方案:)总是很高兴看到你的解决方案:)
var array = ["one", "two", "three", "four", "five"];
var item = array[Math.floor(Math.random()*array.length)];