Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Sorter {
  2.   constructor() {
  3.     this.array = [];
  4.     this.defaultComparator = (left,right) => left - right;
  5.     this.comparator = this.defaultComparator;
  6.   }
  7.  
  8.   add(element) {
  9.     this.array.push(element);
  10.   }
  11.  
  12.   at(index) {
  13.     return this.array[index];
  14.   }
  15.  
  16.   get length() {
  17.     return this.array.length;
  18.   }
  19.  
  20.   toArray() {
  21.     return this.array;
  22.   }
  23.  
  24.   sort(indices) {
  25.     var sortedArray = [];
  26.     indices.sort(this.defaultComparator);
  27.     for(var i = 0; i < indices.length; i++){
  28.       sortedArray.push(this.array[indices[i]]);
  29.     }
  30.     sortedArray.sort(this.comparator);
  31.  
  32.     for(var i = 0; i < indices.length; i++){
  33.       this.array[indices[i]] = sortedArray[i];
  34.     }
  35.   }
  36.  
  37.   setComparator(compareFunction) {
  38.     this.comparator = compareFunction;
  39.   }
  40. }
  41.  
  42. module.exports = Sorter;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement