Advertisement
simonradev

6

Mar 1st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function orderedCollection() {
  2.     const _elements = [];
  3.  
  4.     function add(element) {
  5.         let indexToInsertIn = _elements.length;
  6.         for (let index = _elements.length - 1; index >= -1; index--) {
  7.             const current = _elements[index];
  8.            
  9.             if (index === -1  ||
  10.                 current <= element) {
  11.                 indexToInsertIn = index + 1;
  12.                 break;
  13.             }
  14.         }
  15.        
  16.         for (let index = _elements.length; index >= indexToInsertIn + 1; index--) {
  17.             _elements[index] = _elements[index - 1];
  18.         }
  19.  
  20.         _elements[indexToInsertIn] = element;
  21.        
  22.         _obj.size = _elements.length;
  23.     }
  24.  
  25.     function remove(index) {
  26.         for (let i = index; i < _elements.length - 1; i++) {
  27.             _elements[i] = _elements[i + 1];
  28.         }    
  29.  
  30.         _elements.pop();
  31.  
  32.         _obj.size = _elements.length;
  33.     }
  34.  
  35.     function get(index) {
  36.         return _elements[index];
  37.     }
  38.    
  39.     const _obj = {
  40.         add,
  41.         remove,
  42.         get,
  43.         size: 0
  44.     };
  45.  
  46.     return _obj;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement