Group Teams
JS Only - Divide an array into roughly equal sized groups
by Stephen
JavaScript
function groupTeams(teams, group_count) {
const groups = Array(group_count).fill(null)
.map(() => ([]));
for ( let i = 0; i < teams.length; i++ ) {
groups[i % group_count].push( teams[i] );
}
return groups;
}
let teams = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
// Example with 4 groups
let groupedTeams = groupTeams( teams, 4 );
let group_totals = groupedTeams.map( g => g.length );
console.log(group_totals);
console.log(groupedTeams);
// Do it again with 3 groups
groupedTeams = groupTeams( teams, 3 );
group_totals = groupedTeams.map( g => g.length );
console.log(group_totals);
console.log(groupedTeams);