JavaScript数组如何平均分组?

JavaScript数组平均分组详解及代码优化

本文探讨如何将javascript数组平均分组,并提供两种分组格式的实现方案。 问题在于将一个长度未知的数组(例如,14个元素)平均分成指定数量的组(例如,5组),且尽可能保证每组元素数量均衡。

目标输出格式有两种:

格式一:索引间隔相同

{  '0': [1, 6, 11],  '1': [2, 7, 12],  '2': [3, 8, 13],  '3': [4, 9, 14],  '4': [5, 10]}

登录后复制

格式二:连续索引

{  '0': [1, 2, 3],  '1': [4, 5, 6],  '2': [7, 8, 9],  '3': [10, 11, 12],  '4': [13, 14]}

登录后复制

JavaScript数组如何平均分组?

改进后的代码实现:

立即学习“Java免费学习笔记(深入)”;

以下代码分别实现了两种格式的分组,并解决了原代码中组数不固定的问题,能够精确地按照指定组数进行分组:

格式一:索引间隔相同

function groupArrayByInterval(arr, numGroups) {  const result = {};  const groupSize = Math.floor(arr.length / numGroups);  const remainder = arr.length % numGroups;  let index = 0;  for (let i = 0; i < numGroups; i++) {    const group = [];    const currentGroupSize = groupSize + (i < remainder ? 1 : 0); // 处理余数    for (let j = 0; j  i + 1); // 创建一个长度为14的数组let groupedArray = groupArrayByInterval(arr, 5);console.log(groupedArray);

登录后复制

格式二:连续索引

function groupArrayConsecutive(arr, numGroups) {  const result = {};  const groupSize = Math.floor(arr.length / numGroups);  const remainder = arr.length % numGroups;  let startIndex = 0;  for (let i = 0; i < numGroups; i++) {    const groupSize = Math.floor(arr.length / numGroups) + (i  i + 1); // 创建一个长度为14的数组let groupedArray2 = groupArrayConsecutive(arr2, 5);console.log(groupedArray2);

登录后复制

这两个函数都接受数组 arr 和组数 numGroups 作为参数,并返回一个对象,其中键为组索引,值为该组的数组元素。 它们有效地处理了余数,保证所有元素都被分配到组中,并且准确地按照指定的组数进行分组。 代码更清晰,可读性更强,并且直接解决了原代码中组数不确定的问题。

以上就是JavaScript数组如何平均分组?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2792101.html

(0)
上一篇 2025年3月8日 19:18:30
下一篇 2025年3月8日 19:18:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论