/** @module array/every.ts */ import { untypedCurry } from '../function/untypedCurry' import { Transduce } from '../transduce' export function every( n: number, offset: number, arr: A[] ): A[] export function every( n: number, offset: number ): ( arr: A[] ) => A[] export function every( n: number ): ( offset: number ) => ( arr: A[] ) => A[] /** * Return every n-th item in an array skipping the first number of items given * by an offset * @sig n1 -> n2 -> a[] -> a[] * @param n number of items to step before taking the next item from array * @param offset number of items * @example * every(2,1,[1,2,3,4]) // [2,4] */ export function every( ...args ) { return untypedCurry( ( n, offset, arr ) => Transduce.of( arr ) .every( n, offset ) .join() )( ...args ) } export default every