1.逻辑:任务 / 成员 = Math.floor(商) 向下取整,开始第一次分配;任务 % 成员 = 余数,若有余数,则下标小于余数的成员,任务+1
2.代码:
/**
* @name aveDis
* @param {Number} total 分配总数
* @param {Number} people 在线人数
* @description 均分任务,剩余量从头分配
*/
function aveDis(total, people) {
let surNum = total % people; //余数
let baseNum = Math.floor(total / people); //商-向下取整
let arr = [];
for (let i = 0; i < people; i++) {
arr.push(baseNum + (i < surNum ? 1 : 0));
}
return arr; //(3,5)=[1,1,1,0,0]
}