composeRange static method

List<String> composeRange(
  1. List<int> range
)

Implementation

static List<String> composeRange(List<int> range) {
  return range.asMap().entries.fold<List<List<int>>>([], (acc, cur) {
    if (cur.key == 0 || cur.value != range[cur.key - 1] + 1) acc.add([]);
    acc[acc.length - 1].add(cur.value);
    return acc;
  }).map((cur) {
    return cur.length > 1 ? '${cur[0]}-${cur[cur.length - 1]}' : '${cur[0]}';
  }).toList();
}