chunkArray<T> function
Splits array into chunks of size chunkSize. If the array is not evenly
divisible by chunkSize, the first chunk will be smaller than chunkSize.
E.g., chunkArray([1, 2, 3, 4, 5], 2) => [[1], [2, 3], [4, 5]].
Implementation
List<List<T>> chunkArray<T>(List<T> array, int chunkSize) {
final revArray = array.reversed;
final chunks = List.generate(
(revArray.length / chunkSize).ceil(),
(i) => List<T>.from(
revArray.skip(i * chunkSize).take(chunkSize).toList().reversed,
),
);
return chunks.reversed.toList();
}