可以通过以下步骤实现:
以下是一个示例代码:
function randomGrouping(array, groupCount) {
// 创建副本数组
const copyArray = array.slice();
// 使用Fisher-Yates算法随机排序副本数组
for (let i = copyArray.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[copyArray[i], copyArray[j]] = [copyArray[j], copyArray[i]];
}
// 将副本数组分成所需的组数
const groups = [];
const groupSize = Math.ceil(copyArray.length / groupCount);
for (let i = 0; i < copyArray.length; i += groupSize) {
groups.push(copyArray.slice(i, i + groupSize));
}
return groups;
}
// 示例用法
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const groupCount = 3;
const result = randomGrouping(array, groupCount);
console.log(result);
这段代码将数组 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
随机分成3组,并打印结果。每次运行结果可能不同,因为数组元素的顺序是随机的。
对于以上问题,腾讯云没有特定的产品或链接与之相关。
领取专属 10元无门槛券
手把手带您无忧上云