chunks method

  1. @useResult
Iterable<List<T>> chunks(
  1. int size
)

Splits this iterable into chunks of size size.

The last chunk may have fewer than size elements. size must be positive.

Example:

[1, 2, 3, 4, 5].chunks(2); // [[1, 2], [3, 4], [5]]

Implementation

@useResult
Iterable<List<T>> chunks(int size) {
  if (size < 1) {
    throw ArgumentError(_kErrSizePositive, _kParamSize);
  }
  final List<T> list = _thisAsListOrToList();
  final List<List<T>> result = <List<T>>[];
  for (int i = 0; i < list.length; i += size) {
    final int end = i + size > list.length ? list.length : i + size;
    result.add(list.sublist(i, end));
  }
  return result;
}