@thi.ng/arrays
Version:
Array / Arraylike utilities
46 lines (45 loc) • 1.12 kB
TypeScript
import type { Fn, NumericArray } from "@thi.ng/api";
/**
* Returns optimized function to immutably select, repeat, reshape and /
* or reorder array / object values in the specified index order.
*
* @remarks
* Fast paths for up to 8 indices are provided, before a loop based
* approach is used.
*
* @example
* ```ts tangle:../export/swizzle1.ts
* import { swizzle } from "@thi.ng/arrays";
*
* console.log(
* swizzle([0, 0, 0])([1, 2, 3, 4])
* );
* // [ 1, 1, 1 ]
*
* console.log(
* swizzle([1, 1, 3, 3])([1, 2, 3, 4])
* );
* // [ 2, 2, 4, 4 ]
*
* console.log(
* swizzle([2, 0])([1, 2, 3])
* );
* // [ 3, 1 ]
* ```
*
* @example
* Objects can be used as input to the generated function, but the
* result will always be in array form.
* ```ts tangle:../export/swizzle2.ts
* import { swizzle } from "@thi.ng/arrays";
*
* console.log(
* swizzle(["a", "c", "b"])({a: 1, b: 2, c: 3})
* );
* // [ 1, 3, 2 ]
* ```
*
* @param order - indices
*/
export declare const swizzle: <T>(order: string | PropertyKey[] | NumericArray) => Fn<T, any[]>;
//# sourceMappingURL=swizzle.d.ts.map