22 lines
947 B
JavaScript
22 lines
947 B
JavaScript
|
|
import { sample as sample$1 } from "../../array/sample.mjs";
|
||
|
|
import { toArray } from "../_internal/toArray.mjs";
|
||
|
|
import { isArrayLike } from "../predicate/isArrayLike.mjs";
|
||
|
|
//#region src/compat/array/sample.ts
|
||
|
|
/**
|
||
|
|
* The implementation for the overloaded sample function.
|
||
|
|
*
|
||
|
|
* This function takes an array, string, or object and returns a single element selected randomly.
|
||
|
|
* If the input is empty, or if it's null or undefined, the function returns `undefined`.
|
||
|
|
*
|
||
|
|
* @template T - The type of elements in the collection.
|
||
|
|
* @param {ArrayLike<T> | Record<string, T>} collection - The collection to sample from.
|
||
|
|
* @returns {T | string | undefined} A random element from the collection, or `undefined` if the collection is empty or invalid.
|
||
|
|
*/
|
||
|
|
function sample(collection) {
|
||
|
|
if (collection == null) return;
|
||
|
|
if (isArrayLike(collection)) return sample$1(toArray(collection));
|
||
|
|
return sample$1(Object.values(collection));
|
||
|
|
}
|
||
|
|
//#endregion
|
||
|
|
export { sample };
|