Node.js module for optimizing performance in array chaining transformations, e.g.
array.filter(i => i % 2 === 0).map(i => i + 1);
npm i --save pipe-array
Jest based
npm run test
or
npm run test:watch
import pipe from 'pipe-array';
const array = [1, 2, 4, 5, 6, 7, 8];
const outcome = pipe(array)
.filter(i => i % 2 === 0)
.map(i => i * 2)
.build((p, i) => p + i, 0);
// [2, 4, 6, 8]
// [4, 8, 12, 16]
// 40
Use with large array >10e6 as it is still slower than: for-loop
, for-of,
forEach. But it is faster than
Array.prototype.map`.
Constructor
(array: any[]) => Pipe;
returns an object
{
map(fn: Map): Pipe,
filter(fn: Filter): Pipe;
build: (fn?: Reduce, initialValue?: any) => any | any[];
}
witch can be chained with map
and filter
in any order many times.
(currentValue: any, currentIndex?: number, array?: any[]) => any;
Follows the Array.prototype.map
specification.
(element: any, index?: number, array?: any[], thisArg?: ThisType<any>) => boolean;
Follows the Array.prototype.filter
specification.
(fn?: Reduce, initialValue?: any) => any | any[];boolean;
If no parameter provided just applies early defined map
s and filter
s.
If provided reduce
function, outcome will be transformed
(accumulator: any | any[], currentValue: any, currentIndex?: number, array?: any[])
Follows the Array.prototype.reduce
specification.