33 lines
		
	
	
		
			787 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			787 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { ObjMap } from './ObjMap';
 | |
| /**
 | |
|  * Creates a keyed JS object from an array, given a function to produce the keys
 | |
|  * for each value in the array.
 | |
|  *
 | |
|  * This provides a convenient lookup for the array items if the key function
 | |
|  * produces unique results.
 | |
|  * ```ts
 | |
|  * const phoneBook = [
 | |
|  *   { name: 'Jon', num: '555-1234' },
 | |
|  *   { name: 'Jenny', num: '867-5309' }
 | |
|  * ]
 | |
|  *
 | |
|  * const entriesByName = keyMap(
 | |
|  *   phoneBook,
 | |
|  *   entry => entry.name
 | |
|  * )
 | |
|  *
 | |
|  * // {
 | |
|  * //   Jon: { name: 'Jon', num: '555-1234' },
 | |
|  * //   Jenny: { name: 'Jenny', num: '867-5309' }
 | |
|  * // }
 | |
|  *
 | |
|  * const jennyEntry = entriesByName['Jenny']
 | |
|  *
 | |
|  * // { name: 'Jenny', num: '857-6309' }
 | |
|  * ```
 | |
|  */
 | |
| export declare function keyMap<T>(
 | |
|   list: ReadonlyArray<T>,
 | |
|   keyFn: (item: T) => string,
 | |
| ): ObjMap<T>;
 |