Javascript 从数组创建随机数组
假设我有16个数字,范围从0到15。他们排成一列。我想要实现的是以下阵列:Javascript 从数组创建随机数组,javascript,Javascript,假设我有16个数字,范围从0到15。他们排成一列。我想要实现的是以下阵列: 包含3个随机数的数组 包含2个随机数的数组 包含3个随机数的数组 包含2个随机数的数组 包含2个随机数的数组 包含3个随机数的数组 我将称之为masterarray的数字只能使用一次。因此,数组x包含1,5和7,数组y包含2,9(这些应该是完全随机的) 我知道我可以使用indexOf和splice从数组中获取和删除项目。但是,我如何从数组中获取随机数,同时从列表中删除它们呢 在这个过程中,当数组被更改时,foreach将
indexOf
和splice
从数组中获取和删除项目。但是,我如何从数组中获取随机数,同时从列表中删除它们呢
在这个过程中,当数组被更改时,foreach将不会运行。据我所知,for循环也是如此
我怎样才能做到这一点呢?这里有一个非洗牌方法
var master = [], arr1=[], arr2=[], arr3=[], arr4=[], arr5=[], arr6=[], i=1;
for(i; i<16;i++){ // populating "master" array
master.push(i);
}
while(master.length>0){
var num =master.splice(Math.floor(Math.random()*master.length),1)[0];
if (master.length>11){
arr1.push(num);
continue;
}
if(master.length>9){
arr2.push(num);
continue;
}
if(master.length>6){
arr3.push(num);
continue;
}
if(master.length>4){
arr4.push(num);
continue;
}
if(master.length>2){
arr5.push(num);
continue;
}
else {
arr6.push(num);
}
}
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
console.log(arr5);
console.log(arr6);
var master=[]、arr1=[]、arr2=[]、arr3=[]、arr4=[]、arr5=[]、arr6=[]、i=1;
对于(i;i0){
var num=master.splice(Math.floor(Math.random()*master.length),1)[0];
如果(主长度>11){
arr1.推送(num);
继续;
}
如果(主长度>9){
arr2.推送(num);
继续;
}
如果(主长度>6){
arr3.推送(num);
继续;
}
如果(主长度>4){
arr4.推送(num);
继续;
}
如果(主长度>2){
arr5.推送(num);
继续;
}
否则{
arr6.推送(num);
}
}
控制台日志(arr1);
控制台日志(arr2);
控制台日志(arr3);
控制台日志(arr4);
控制台日志(arr5);
控制台日志(arr6);
您需要洗牌原始数组,然后使用pop()
填充新数组。谢谢你!我要试一试:)我没有想过要从一个洗牌的角度去做!