All files / utils sampleIndex.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 1/1
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16                          4x    
import { nthArg } from 'lodash-uni'
import { sampleBy } from './sampleBy'
 
/**
 * 从集合中随机获得一个元素的索引(数组)或键(对象)。
 *
 * @param collection 集合
 */
export function sampleIndex<T>(collection: T[]): number | undefined
export function sampleIndex<T extends Record<any, any>>(
  collection: T,
): keyof T | undefined
export function sampleIndex(collection: any): any {
  return sampleBy(collection, nthArg(1))
}