(ranges)
| 182 | // Merges the given list of ranges such that any overlapping regions are combined. E.g. |
| 183 | // mergeRanges([0, 4], [3, 6]) => [0, 6]. A range is [startIndex, endIndex]. |
| 184 | mergeRanges(ranges) { |
| 185 | let previous = ranges.shift(); |
| 186 | const mergedRanges = [previous]; |
| 187 | for (const range of ranges) { |
| 188 | if (previous[1] >= range[0]) { |
| 189 | previous[1] = Math.max(range[1], previous[1]); |
| 190 | } else { |
| 191 | mergedRanges.push(range); |
| 192 | previous = range; |
| 193 | } |
| 194 | } |
| 195 | return mergedRanges; |
| 196 | } |
| 197 | |
| 198 | // Simplify a suggestion's URL (by removing those parts which aren't useful for display or |
| 199 | // comparison). |
no test coverage detected