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.
		
		
		
		
		
			
		
			
				
					38 lines
				
				839 B
			
		
		
			
		
	
	
					38 lines
				
				839 B
			| 
											3 years ago
										 | # @jridgewell/set-array
 | ||
|  | 
 | ||
|  | > Like a Set, but provides the index of the `key` in the backing array
 | ||
|  | 
 | ||
|  | This is designed to allow synchronizing a second array with the contents of the backing array, like | ||
|  | how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, and there | ||
|  | are never duplicates. | ||
|  | 
 | ||
|  | ## Installation
 | ||
|  | 
 | ||
|  | ```sh | ||
|  | npm install @jridgewell/set-array | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Usage
 | ||
|  | 
 | ||
|  | ```js | ||
|  | import { SetArray, get, put, pop } from '@jridgewell/set-array'; | ||
|  | 
 | ||
|  | const sa = new SetArray(); | ||
|  | 
 | ||
|  | let index = put(sa, 'first'); | ||
|  | assert.strictEqual(index, 0); | ||
|  | 
 | ||
|  | index = put(sa, 'second'); | ||
|  | assert.strictEqual(index, 1); | ||
|  | 
 | ||
|  | assert.deepEqual(sa.array, [ 'first', 'second' ]); | ||
|  | 
 | ||
|  | index = get(sa, 'first'); | ||
|  | assert.strictEqual(index, 0); | ||
|  | 
 | ||
|  | pop(sa); | ||
|  | index = get(sa, 'second'); | ||
|  | assert.strictEqual(index, undefined); | ||
|  | assert.deepEqual(sa.array, [ 'first' ]); | ||
|  | ``` |