pairs static method

List<List<int>> pairs(
  1. int to,
  2. int by, {
  3. int offset = 1,
})

Generates pairs (sub-ranges) from a range up to to, stepping by by.

Number.pairs(25, 10);             // [[0, 9], [10, 19], [20, 25]]
Number.pairs(25, 10, offset: 0);  // [[0, 10], [10, 20], [20, 25]]

Implementation

static List<List<int>> pairs(int to, int by, {int offset = 1}) {
  final result = <List<int>>[];
  var start = 0;
  while (start < to) {
    final end = (start + by - offset).clamp(0, to);
    result.add([start, end]);
    start += by;
  }
  return result;
}