Agrupar em ordem

Crie uma função que agrupe um array de números com base em um parâmetro de tamanho. O tamanho representa o comprimento máximo de cada subarray.

[1, 2, 3, 4, 5, 6], 3
[[1, 3, 5], [2, 4, 6]]
// Divide array into groups of size 3.

[1, 2, 3, 4, 5, 6], 2
[[1, 4], [2, 5], [3, 6]]
// Divide array into groups of size 2.

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 4
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9]]
// "Leftover" arrays are okay.

Exemplos

group([1, 2, 3, 4], 2) ➞ [[1, 3], [2, 4]]

group([1, 2, 3, 4, 5, 6, 7], 4) ➞ [[1, 3, 5, 7], [2, 4, 6]]

group([1, 2, 3, 4, 5], 1) ➞ [[1], [2], [3], [4], [5]]

group([1, 2, 3, 4, 5, 6], 4) ➞ [[1, 3, 5], [2, 4, 6]]

Observações

  • O parâmetro tamanho representa o tamanho máximo de cada subarray (consulte o ex. 4). Você deve tentar preencher cada subarray de maneira uniforme. Em outras palavras, o ex. 4 deve ser [[1, 3, 5], [2, 4, 6]], não [[1, 3, 5, 6], [2, 4]].
  • Mantenha a ordem relativa dos números em cada subarray igual à ordem no array original.
  • Ao distribuir os números nos subarrays, cada subarray deve conter um número antes de receber um novo número (por exemplo, no exemplo 1, seus subarrays terão tamanho 2 e, como há 4 números, você precisará de 2 subarrays. Ao percorrer o array original para preencher os subarrays, deve passar de [[],[]] -> [[1],[]] -> [[1],[2]] -> [[1, 3], [2]] -> [[1, 3], [2, 4]]).