UNPKG

remeda

Version:

A utility library for JavaScript and Typescript.

1 lines 1.45 kB
{"version":3,"file":"takeLast.cjs","names":["purry"],"sources":["../src/takeLast.ts"],"sourcesContent":["import type { IterableContainer } from \"./internal/types/IterableContainer\";\nimport { purry } from \"./purry\";\n\n/**\n * Takes the last `n` elements from the `array`.\n *\n * @param array - The target array.\n * @param n - The number of elements to take.\n * @signature\n * R.takeLast(array, n)\n * @example\n * R.takeLast([1, 2, 3, 4, 5], 2) // => [4, 5]\n * @dataFirst\n * @category Array\n */\nexport function takeLast<T extends IterableContainer>(\n array: T,\n n: number,\n): Array<T[number]>;\n\n/**\n * Take the last `n` elements from the `array`.\n *\n * @param n - The number of elements to take.\n * @signature\n * R.takeLast(n)(array)\n * @example\n * R.takeLast(2)([1, 2, 3, 4, 5]) // => [4, 5]\n * @dataLast\n * @category Array\n */\nexport function takeLast<T extends IterableContainer>(\n n: number,\n): (array: T) => Array<T[number]>;\n\nexport function takeLast(...args: ReadonlyArray<unknown>): unknown {\n return purry(takeLastImplementation, args);\n}\n\nconst takeLastImplementation = <T extends IterableContainer>(\n array: T,\n n: number,\n): Array<T[number]> =>\n n > 0 ? array.slice(Math.max(0, array.length - n)) : [];\n"],"mappings":"wCAmCA,SAAgB,EAAS,GAAG,EAAuC,CACjE,OAAOA,EAAAA,EAAM,EAAwB,EAAK,CAG5C,MAAM,GACJ,EACA,IAEA,EAAI,EAAI,EAAM,MAAM,KAAK,IAAI,EAAG,EAAM,OAAS,EAAE,CAAC,CAAG,EAAE"}