Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Свернуть список в интервалы
- [1, 4, 5, 2, 3, 9, 8, 11, 0] => '0-5,8-9,11'
- */
- function compress(arr) {
- if (arr.length === 0) return '';
- arr.sort((a,b) => a - b);
- let res = [];
- let start = arr[0];
- let end;
- for (var i = 1; i <= arr.length; i++) {
- if (arr[i] - arr[i - 1] === 1) {
- end = arr[i];
- } else {
- res.push(start + (end ? '-' + end : ''));
- start = arr[i];
- end = arr[i + 1]
- }
- }
- console.log(res.join(','))
- }
- compress([1, 4, 5, 2, 3, 9, 8, 11, 0]) //'0-5,8-9,11'
- compress([1, 4, 3, 2]) //'1-4'
- compress([1])// '1'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement