将数组随机填充到下面数组中,数量尽可能相同
将数组随机填充到下面数组中,数量尽可能相同
完善版
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var group = [
[],
[],
[],
[],
];
function split(arr) {
// 随机排序数组
arr.sort(function() {
return 0.5 - Math.random();
})
// 指针
let k = 0;
// 计算每个数组里面的个数
let nu = Math.round(arr.length / group.length);
// let nu = Math.floor(arr.length / group.length);
// 若存在小数 +1
let nus = nu;
// 判断是不是小数
console.log((arr.length / group.length) % 1);
if ((arr.length / group.length) % 1 >=0.5) {
nus = Math.floor(arr.length / group.length);
}else{
nus = Math.ceil(arr.length / group.length);
}
// if ((arr.length / group.length) % 1 !== 0) {
// nus = Math.ceil(arr.length / group.length);
// }
// 数据处理
if (nus == nu) {
console.log('数组内数据:',nu);
for (let i = 0; i < group.length; i++) {
for (let j = 0; j < nu; j++) {
group[i].push(arr[k++]);
}
}
}else{
console.log('数组1内数据:',nus,'其他数组内数据:',nu);
for (let i = 0; i < group.length; i++) {
if(i == 0){
for (let j = 0; j < nus; j++) {
group[i].push(arr[k++]);
}
}else{
for (let j = 0; j < nu; j++) {
group[i].push(arr[k++]);
}
}
}
}
}
split(arr1);
console.log(group);
残缺版
var arr1 = [1,2,3,4,5,6,7,8,9];
var group = [[],[],[],[]];
function split(arr) {
// 随机排序数组
arr.sort(function(){
return 0.5 - Math.random();
})
let nu = Math.floor(arr.length / group.length);
let k = 0;
// console.log(nu)
for(let i=0; i<group.length; i++){
if(i==0){
arr.map((item,index)=>{
if(index<(nu+1)){
group[0].push(item)
k++;
}
})
}else{
for(let j=0; j<2; j++){
group[i].push(arr[k++])
}
}
}
}
split(arr1);
console.log(group);
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634356.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现