Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 1x 1x 27x 13x 13x 1x 12x 2x 10x 10x 23x 10x | import {chunkBySize} from './chunkBySize'; export function reshape(dimensions: [number,]): <A>(a: A[]) => [A][]; export function reshape(dimensions: [number, number,]): <A>(a: A[]) => [A][][]; export function reshape(dimensions: [number, number, number,]): <A>(a: A[]) => [A][][][]; export function reshape(dimensions: [number, number, number, number,]): <A>(a: A[]) => [A][][][][]; export function reshape(dimensions: [number, number, number, number, number,]): <A>(a: A[]) => [A][][][][][]; export function reshape(dimensions: [number, number, number, number, number, number,]): <A>(a: A[]) => [A][][][][][][]; export function reshape(dimensions: [number, number, number, number, number, number, number,]): <A>(a: A[]) => [A][][][][][][][]; export function reshape(dimensions: [number, number, number, number, number, number, number, number]): <A>(a: A[]) => [A][][][][][][][][]; export function reshape(dimensions: number[]): <A>(a: A[]) => any[]; export function reshape(dimensions: number[]) { const size = dimensions.length ? dimensions.reduce((a, b) => a * b, 1) : 0; return (arrays: unknown[]): unknown[] => { if (size !== arrays.length) { throw new Error(dimensions.join(' * ') + ' must equal array length'); } if (size === 0) { return []; } // @ts-ignore let res: any[] = arrays; for (let i = dimensions.length - 1; i >= 0; i--) { res = chunkBySize(dimensions[i])(res); } return res[0]; }; } |