functional-chaining
v1.0.3
Published
Modifies the prototype getters of Array, String, Number and Object to have better functionalities themselves, which makes the code more pleasant to write.
Downloads
5
Readme
functional-chaining
Module that modifies prototypes of Array, String, Number and Object with useful functions.
How to use
npm i --save functional-chaining
import fc from 'functional-chaining';
fc.init()
or
const fc = require('functional-chaining');
fc.init()
Arrays
Includes the following functions for arrays:
Array._last
returns the last element from the array
[0, 1, 2, 3, 4]._last // 4
Array._head
returns the first element from the array
[0, 1, 2, 3, 4]._head // 0
Array._tail
returns the array except the first element
[0, 1, 2, 3, 4]._tail // [1, 2, 3, 4]
Array._distinct
returns the array with only unique values
[0, 0, 1, 0, 3, 3]._distinct // [0, 1, 3]
Array._count
Counts the elements which satisfy a function
[0, 1, 2, 3, 4]._count(v => v > 2) // 2
Array._take
Takes the first n elements of the array
[0, 1, 2, 3, 4]._take(3) // [0, 1, 2]
Array._drop
Takes all but the first n elements of the array
[0, 1, 2, 3, 4]._drop(3) // [3, 4]
Array._toSet
creates a set from the array
[0, 1, 2, 3, 4].toSet // [3, 4]
Strings
The following array properties are also defined for strings, with the same functionalities:
- String._last
- String._head
- String._tail
- String._take
- String._drop
Numbers
Number.isNaN
Equivalent of isNaN(number)
Objects
Object._forEach
Performs a function for each key-value pair
const obj = {a: 1, b: 2, c: 3};
obj._forEach((key, value) => {
console.log(`${value}${key}`)
})
// Logs 1a, 2b and 3c
Object._forEachValue
Same as ._forEach but only takes the value as the callback function parameter
const obj = {a: 1, b: 2, c: 3};
obj._forEachValue(value => {
console.log(value)
})
// Logs 1, 2 and 3
Object._map
Returns a new object mapped with a function
const obj = {a: 1, b: 2, c: 3};
obj._map((key, value) => {
return value * 2
})
// {a: 2, b: 4, c: 6}
Object._mapValues
Same as ._map but only takes the value as the callback function parameter
const obj = {a: 1, b: 2, c: 3};
obj._mapValues(value => {
return value * 2
})
// {a: 2, b: 4, c: 6}