A lazy sequence/stream library for easily parsing and analyzing data using composable functional operators
# install using npm:
npm i @ajetski/seq
# or install using yarn:
yarn add @ajetski/seq
import {
Sequence,
Range,
Filter,
Map,
Sequenceable /*, ...*/,
} from '@ajetski/seq';
let seq = new Sequence();
let seq = new Sequence([1, 2, 3]);
let seq = new Range(1, 4); // Sequence(1, 2, 3)
let seq2 = new Range(1, 10, 2); // Sequence(1, 3, 5, 7, 9)
let seq3 = new Range(10, 1, -2); // Sequence(10, 8, 6, 4, 2)
let seq = new Range(1, 4); // Sequence(1, 2, 3)
seq.forEach((value, index) => {
///...
});
let seq = new Range(1, 4); // Sequence(1, 2, 3)
let arr = seq.toArray();
let seq = new Sequence([1, 2, 3]).filter((elem, idx) => idx % 2 === 0); // Sequence(1, 3)
let seq = new Sequence([1, 2, 3]).fold(0, (acc, elem) => acc + elem); // 6
let seq = new Sequence([1, 2, 3]).map((elem, idx) => elem * 2); // Sequence(2, 4, 6)
let seqA = new Sequence([1, 2, 3]);
let seqB = new Sequence([4, 5, 6]);
let seqC = seqA.concat(seqB); // Sequence(1, 2, 3, 4, 5, 6)
let seqA = new Sequence([1, 2, 3]);
let seqB = seqA.append(4); // Sequence(1, 2, 3, 4)
Check out the tests folder to see more examples and usages