1.0.5 • Published 7 years ago
pipe-array v1.0.5
pipe-array
Node.js module for optimizing performance in array chaining transformations, e.g.
array.filter(i => i % 2 === 0).map(i => i + 1);Install
npm i --save pipe-arrayRun tests
Jest based
npm run testor
npm run test:watchExample
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]
// 40Recommendations
Use with large array >10e6 as it is still slower than: for-loop, for-of,forEach. But it is faster thanArray.prototype.map`.
Specification
pipe
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.
map
(currentValue: any, currentIndex?: number, array?: any[]) => any;Follows the Array.prototype.map specification.
filter
(element: any, index?: number, array?: any[], thisArg?: ThisType<any>) => boolean;Follows the Array.prototype.filter specification.
build
(fn?: Reduce, initialValue?: any) => any | any[];boolean;If no parameter provided just applies early defined maps and filters.
If provided reduce function, outcome will be transformed
reduce
(accumulator: any | any[], currentValue: any, currentIndex?: number, array?: any[])Follows the Array.prototype.reduce specification.