'use strict'; const _ = require('lodash'); // 获取总人数 const number = 10; // 按照 一组 4人/5人 计算下有多少组 const groupPersonNumbers = [ 4, 5 ]; const result = []; console.group(`共:${number}人`); for (const num of groupPersonNumbers) { // 商,向下取整 const r = _.floor(_.divide(number, num)); // 余数 const l = number % num; result.push({ r, l, t: num }); console.log(`${num}人一组: 商:${r};余:${l}`); } console.groupEnd(`共:${number}人`); const res = _.orderBy(result, data => { console.log(data); const { t, l } = data; // 没有余数的,说明恰好分完,先提上去 if (l === 0) return l; // 有余数的,计算 余数越大越好 }, 'asc'); console.log(res);