将数组随机填充到下面数组中,数量尽可能相同
将数组随机填充到下面数组中,数量尽可能相同
完善版
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

浙公网安备 33010602011771号