chunkArray<T> function

List<List<T>> chunkArray<T>(
  1. List<T> array,
  2. int chunkSize
)

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();
}