es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
23 lines (22 loc) • 796 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 n - The number of times to invoke getValue.
* @param getValue - The function to invoke for each index.
* @returns 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 };