Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var numbers = [1,2,3,4,5,6,7,8,9,20,21,22,98,99,100,220,221];
- function ranges(numbers){
- var sorted = numbers.sort(function(a,b){return a-b;});
- var first = sorted.shift();
- return sorted.reduce(function(ranges, num){
- if(num - ranges[0][1] <= 1){
- ranges[0][1] = num;
- } else {
- ranges.unshift([num,num]);
- }
- return ranges;
- },[[first,first]]).map(function(ranges){
- return ranges[0] === ranges[1] ?
- ranges[0].toString() : ranges.join('-');
- }).reverse();
- }
- alert(ranges(numbers));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement