从数组创建随机数组

Create random arrays from an array

本文关键字:数组 随机 创建      更新时间:2023-09-26

>假设我有 16 个数字,范围 0 到 15。他们坐在一个阵列中。我想要实现的是以下数组:

  1. 具有 3 个随机数的数组。
  2. 具有 2 个随机数的数组。
  3. 具有 3 个随机数的数组。
  4. 具有 2 个随机数的数组。
  5. 具有 2 个随机数的数组。
  6. 具有 3 个随机数的数组。

我称之为主数组的数字只能使用一次。所以数组 x 保存 1、5 和 7,数组 y 保存 2、9(这些应该是完全随机的(。

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

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);