Socket
Socket
Sign inDemoInstall

array-dsl

Package Overview
Dependencies
36
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    array-dsl

A Dsl approach toward arrays.


Version published
Maintainers
1
Install size
443 kB
Created

Readme

Source

An array focused DSL

QA monorepo

JavaScript Style Guide CircleCI Test Coverage Maintainability Greenkeeper badge Known Vulnerabilities FOSSA Status

HitCount lerna

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')

// flatten
let result = arrayDsl(example).flatten()
// [1,3,2,4,5,6,6]

// unique
result = arrayDsl(example).flatten.unique()
// [1,3,2,4,5,6]

// sort
result = arrayDsl(example).flatten.unique.sort()
// [1,2,3,4,5,6]

// sort
result = arrayDsl(example).flatten
  .unique.xor([1,7]).sort()
// [2,3,4,5,6,7]

// reverse
result = arrayDsl(example).flatten
  .unique.xor([1,7]).sort.reverse()
// [7,6,5,4,3,2]

// slice
result = arrayDsl(example).flatten
  .unique.xor([1,7]).sort().slice(1)()
// [3,4,5,6,7]

// randomItem
let randonItem = result = arrayDsl(example).flatten
  .unique.xor([1,7]).sort().slice(1).randomItem()
randonItem()
// this could return an item from the array [3,4,5,6,7]
// you can call it as much as you want

// union
result = arrayDsl(example).flatten
  .unique.xor([1,7]).sort().slice(1).union([1,8,2,3])()
// [1,2,3,4,5,6,7,8]

// union
result = arrayDsl([1,1,1,2,3,4,5]).union([1,8,2,3])()
// [1,2,3,4,5,8]

// if no arrify is called the same value/object is given back if it not an array
const notChanged2 = arrayDsl(3).unique.sort()
// 3


const rlastComplex = arrayDsl([1,1,1,2,3,4,5])
  .union([1,8,2,3]).last()
// 8

const first  = arrayDsl([1,2,3]).first()
// 1

// head is the alias of first
const head  = arrayDsl([1,2,3]).head()
// 1

// last
const last  = arrayDsl([1,2,3]).last()
// 3

// last + arrify
const lastAffify  = arrayDsl([1,2,3]).last.arrify()
// [3]

// Arrify transforms non array parameters to arrays
// https://www.npmjs.com/package/arrify
const arrify  = arrayDsl(3).arrify()
// [3]

const arrify  = arrayDsl(3).last.arrify()
// [3]

// if the parameter is not an array whatever 
// you do with it it will give back at the end 
// the variable you added to it.
const notChanged = arrayDsl(3)()
// 3

const flast  = arrayDsl([1,2,3]).tail()
// [1,2,3,4,5,8]

d3-array functions:

const min = arrayDsl([1,2,3].min())
// 3

const max = arrayDsl([1,2,3].max())
// 3

const extent = arrayDsl([3,2,1].extent())
// [1,3]

const sum = arrayDsl([1,2,3].sum())
// 6

const median = arrayDsl([1,2,3].median())
// 2

const quantile = arrayDsl([0,10,1000,10000].quantile(0))
// 0

const variance = arrayDsl([0,10,1000,10000].variance())
const deviation = arrayDsl([0,10,1000,10000].deviation())

Keywords

FAQs

Last updated on 21 May 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc