You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							2.0 KiB
						
					
					
				| # sorted-array-functions
 | |
| 
 | |
| Maintain and search through a sorted array using some low level functions
 | |
| 
 | |
| ```
 | |
| npm install sorted-array-functions
 | |
| ```
 | |
| 
 | |
| [](http://travis-ci.org/mafintosh/sorted-array-functions)
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ``` js
 | |
| var sorted = require('sorted-array-functions')
 | |
| var list = []
 | |
| 
 | |
| sorted.add(list, 1)
 | |
| sorted.add(list, 4)
 | |
| sorted.add(list, 2)
 | |
| 
 | |
| console.log(list) // prints out [1, 2, 4]
 | |
| console.log(sorted.has(list, 2)) // returns true
 | |
| console.log(sorted.has(list, 3)) // returns false
 | |
| console.log(sorted.eq(list, 2)) // returns 1 (the index)
 | |
| console.log(sorted.gt(list, 2)) // returns 2
 | |
| console.log(sorted.gt(list, 4)) // returns -1
 | |
| ```
 | |
| 
 | |
| ## API
 | |
| 
 | |
| #### `sorted.add(list, value, [compare])`
 | |
| 
 | |
| Insert a new value into the list sorted.
 | |
| Optionally you can use a custom compare function that returns, `compare(a, b)` that returns 1 if `a > b`, 0 if `a === b` and -1 if `a < b`.
 | |
| 
 | |
| #### `sorted.addFromFront(list, value, [compare])`
 | |
| 
 | |
| Inserts a new value (same result as `sorted.add()`) optimized for prepend.
 | |
| 
 | |
| #### `var bool = sorted.remove(list, value, [compare])`
 | |
| 
 | |
| Remove a value. Returns true if the value was in the list.
 | |
| 
 | |
| #### `var bool = sorted.has(list, value, [compare])`
 | |
| 
 | |
| Check if a value is in the list.
 | |
| 
 | |
| #### `var index = sorted.eq(list, value, [compare])`
 | |
| 
 | |
| Get the index of a value in the list (uses binary search).
 | |
| If the value could not be found -1 is returned.
 | |
| 
 | |
| #### `var index = sorted.gte(list, value, [compare])`
 | |
| 
 | |
| Get the index of the first value that is `>=`.
 | |
| If the value could not be found -1 is returned.
 | |
| 
 | |
| #### `var index = sorted.gt(list, value, [compare])`
 | |
| 
 | |
| Get the index of the first value that is `>`.
 | |
| If the value could not be found -1 is returned.
 | |
| 
 | |
| #### `var index = sorted.lte(list, value, [compare])`
 | |
| 
 | |
| Get the index of the first value that is `<=`.
 | |
| If the value could not be found -1 is returned.
 | |
| 
 | |
| #### `var index = sorted.lt(list, value, [compare])`
 | |
| 
 | |
| Get the index of the first value that is `<`.
 | |
| If the value could not be found -1 is returned.
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT
 |