javascript - 将一个数组拆分为 n 个数组,这些数组接近 eqaul 的元素
问题描述
我想将一个数组拆分为接近相等元素的 n 个数组。这是纸牌游戏,所以最后一个最大元素的差异应该是 1 或 2
const splitArray = (arr, n) => {
if (n < 2) {
return arr
}
let size;
let result = [];
for (let i = 0; i < arr.length; i++) {
if (arr.length % n === 0) {
size = arr.length / n
while (i < arr.length) {
result.push(arr.slice(i, i += size))
}
} else {
while (i < arr.length) {
size = Math.floor(arr.length / n)
result.push(arr.slice(i, i += size))
}
}
}
return result
}
console.log(splitArray(shuffled, 7).length)
console.log(splitArray(shuffled, 7))
解决方案
推荐阅读
- python - 运行以下代码时出现错误(找到带有暗淡 3 的数组。预计估计器 <= 2)
- powershell - PowerShell中的“导出-csv”
- c# - 如何将 C# 中的嵌套字典结构复制到 Lua
- sql - 如何在具有数组参数的 exec Oracle 过程中传递参数
- excel - 如何正确实现自定义查找功能 VBA Excel?
- jenkins - 禁用名称中带有空格的 Jenkins 作业
- flutter - Flutter - 如何调整 VideoProgressIndicator() 的对齐方式
- wireshark - 什么是`tcp.analysis`?和`tcp.analysis.flags`?
- typoscript - TYPO3:用 div 包裹内容元素
- javascript - React Fullcalendar - 列标题格式