An array focused DSL
QA monorepo
Installation
npm install array-dsl --save
Motivation
This is project helps you to deal with arrays in a more functional/DLS way. This is also a presentation about how easy is to craft your own dsl with the help of the
dsl-framework
Usage
I present the usage of the library with the example below; there are many ways to use it, let's start with the most
practically applicable one.
Examples
const example = [1,3,2,[4],[5,[6],6]]
const arrayDsl = require('array-dsl')
let result = arrayDsl(example).flatten()
result = arrayDsl(example).flatten.unique()
result = arrayDsl(example).flatten.unique.sort()
result = arrayDsl(example).flatten
.unique.xor([1,7]).sort()
result = arrayDsl(example).flatten
.unique.xor([1,7]).sort.reverse()
result = arrayDsl(example).flatten
.unique.xor([1,7]).sort().slice(1)()
let randonItem = result = arrayDsl(example).flatten
.unique.xor([1,7]).sort().slice(1).randomItem()
randonItem()
result = arrayDsl(example).flatten
.unique.xor([1,7]).sort().slice(1).union([1,8,2,3])()
result = arrayDsl([1,1,1,2,3,4,5]).union([1,8,2,3])()
const notChanged2 = arrayDsl(3).unique.sort()
const rlastComplex = arrayDsl([1,1,1,2,3,4,5])
.union([1,8,2,3]).last()
const first = arrayDsl([1,2,3]).first()
const head = arrayDsl([1,2,3]).head()
const last = arrayDsl([1,2,3]).last()
const lastAffify = arrayDsl([1,2,3]).last.arrify()
const arrify = arrayDsl(3).arrify()
const arrify = arrayDsl(3).last.arrify()
const notChanged = arrayDsl(3)()
const flast = arrayDsl([1,2,3]).tail()
d3-array functions:
const min = arrayDsl([1,2,3].min())
const max = arrayDsl([1,2,3].max())
const extent = arrayDsl([3,2,1].extent())
const sum = arrayDsl([1,2,3].sum())
const median = arrayDsl([1,2,3].median())
const quantile = arrayDsl([0,10,1000,10000].quantile(0))
const variance = arrayDsl([0,10,1000,10000].variance())
const deviation = arrayDsl([0,10,1000,10000].deviation())