Advertisement
vit134

Свертка список в интервалы (Яндекс)

Nov 12th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Свернуть список в интервалы
  3.     [1, 4, 5, 2, 3, 9, 8, 11, 0] => '0-5,8-9,11'
  4. */
  5.  
  6. function compress(arr) {
  7.     if (arr.length === 0) return '';
  8.    
  9.     arr.sort((a,b) => a - b);
  10.    
  11.     let res = [];
  12.    
  13.     let start = arr[0];
  14.     let end;
  15.    
  16.     for (var i = 1; i <= arr.length; i++) {
  17.         if (arr[i] - arr[i - 1] === 1) {
  18.             end = arr[i];
  19.         } else {
  20.             res.push(start + (end ? '-' + end : ''));
  21.             start = arr[i];
  22.             end = arr[i + 1]
  23.         }
  24.     }
  25.    
  26.     console.log(res.join(','))
  27. }
  28.  
  29.  
  30.  
  31. compress([1, 4, 5, 2, 3, 9, 8, 11, 0]) //'0-5,8-9,11'
  32. compress([1, 4, 3, 2]) //'1-4'
  33. compress([1])// '1'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement