从数组创建随机数组

时间:2014-12-09 14:46:12

标签: javascript

假设我有16个数字,范围是0到15.它们位于一个数组中。我想要实现的是以下数组:

  1. 包含3个随机数的数组。
  2. 包含2个随机数的数组。
  3. 包含3个随机数的数组。
  4. 包含2个随机数的数组。
  5. 包含2个随机数的数组。
  6. 包含3个随机数的数组。
  7. 我将称之为masterarray的数字只能使用一次。因此,数组x保持1,5和7,数组y保持2,9(这些应该是完全随机的)。

    我了解我可以使用indexOfsplice从数组中获取和删除项目。但是,如何从阵列中获取随机数,同时从列表中删除它们呢?

    在此过程中,当阵列被改变时,foreach不会去。根据我的理解,for循环也是如此。

    我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这是一种非随意的方法......

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);
相关问题