23 lines
834 B
JavaScript
23 lines
834 B
JavaScript
import { toInteger } from "./toInteger.mjs";
|
|
//#region src/compat/util/times.ts
|
|
/**
|
|
* Invokes the getValue function n times, returning an array of the results.
|
|
*
|
|
* @template R The return type of the getValue function.
|
|
* @param {number} n - The number of times to invoke getValue.
|
|
* @param {(index: number) => R} getValue - The function to invoke for each index.
|
|
* @returns {R[]} An array containing the results of invoking getValue n times.
|
|
* @example
|
|
* times(3, (i) => i * 2); // => [0, 2, 4]
|
|
* times(2, () => 'es-toolkit'); // => ['es-toolkit', 'es-toolkit']
|
|
*/
|
|
function times(n, getValue) {
|
|
n = toInteger(n);
|
|
if (n < 1 || !Number.isSafeInteger(n)) return [];
|
|
const result = new Array(n);
|
|
for (let i = 0; i < n; i++) result[i] = typeof getValue === "function" ? getValue(i) : i;
|
|
return result;
|
|
}
|
|
//#endregion
|
|
export { times };
|