Functional Library
functional programming functions.
(Librería de funciones usadas para programación funcional.)
Install
npm i functionallibrary
Summary
allAreTrue,
atLeastOneTrue,
commonsItemsBetweenArrays,
compose,
createPropertyByOtherOne: curry(createPropertyByOtherOne),
curry,
debounce,
decide: curry(decide),
equality: curry(equality),
every: curry(every),
filter: curry(filter),
find: curry(find),
findIndex: curry(findIndex),
forEach: curry(forEach),
getPropertysValue: curry(getPropertysValue),
identity: curry(identity),
isEmpty,
isNotEmpty,
map: curry(map),
mergeObjects,
reduce: curry(reduce),
removeItemFromArrayByIndex: curry(removeItemFromArrayByIndex),
removeItemFromArrayByProp: curry(removeItemFromArrayByProp),
returnUniqueArraysItems,
round: curry(round),
setNewProperty,
some: curry(some),
Use
import functionallibrary in your .js
file
;
Vuejs use
in your .vue
file
<script> ; { const setCreateAt = ; const setCustomer = ; const updatingPropsInDocuments = ; const update = ; thisdocuments = ; } { return customer: name: 'jhon Doe' id: '00001' documents: id: 1 num: '1234' description: 'new shoes' type: 'sale' id: 2 num: '2345' description: 'new t-shirt' type: 'sale' } name: 'vue-component' data methods: updateDocuments </script>
the updateDocument
function result:
thisdocuments = id: 1 num: '1234' description: 'new shoes' type: 'sale' createdAt: '2019-12-28' customer: name: 'jhon Doe' id: '00001' id: 2 num: '2345' description: 'new t-shirt' type: 'sale' createdAt: '2019-12-28' customer: name: 'jhon Doe' id: '00001' ;
Functions
allAreTrue
const flag1 = true;const a = 'string';const n = 10;; // true const flag1 = true;const a = 'string';const n = 0;; // false const flag1 = true;const a = '';const n = 4;; // false
arrayPrototypes
every
const arr = true true true true; const allTrue = !!v; // true const arr = 1 3 5 'a' 10; const isNumber = typeof n === 'number'; const allNumbers = // false
filter
const arr = 1 3 5 8 10 12; const moreThan5 = v > 5; const item = // [8, 10, 12]
find
const arr = 1 3 5; const findFive = v === 5; const item = // 5
findIndex
const arr = 1 3 5; const findIndex = v === 5; const itemIndex = // 2
map
const arr = 1 3 5; const duplicate = v * 2; const duplicateValues = // [2, 6, 10]
reduce
const arr = 1 3 5; const total = acc + v; const totalAmount = // 9
some
const arr = 1 3 5 'a' 10; const letter = typeof n === 'string'; const anyLetter = // true
atLeastOneTrue
const flag1 = true;const a = 'string';const n = 10;; // true const flag1 = true;const a = '';const n = 0;; // true const flag1 = false;const a = '';const n = 0;; // false
commonsIntemsBetweenArrays
const a = 1 2 3 4 5 6 7 8 9;const b = 5 6 7 8 9 10;; // [5, 6, 7, 8, 9]
var a = id: 1 name: 'wen' id: 2 name: 'are' id: 3 name: 'Tony' id: 4 name: 'Ada' id: 5 name: 'JJ';var b = id: 1 name: 'wen' id: 5 name: 'JJ' id: 6 name: 'nene'; // [{id: 1, name: 'wen'}, {id: 5, name: 'JJ'}]
compose
var persons = id: 1 name: 'wen' id: 5 name: 'JJ' id: 6 name: 'nene';const newPersons = // [{id: 1, name: 'wen', flagActive: true, createAt: 'fecha de hoy', code: 'wen-1'}, // {id: 5, name: 'JJ', flagActive: true, createAt: 'fecha de hoy', code: 'JJ-5'}, // {id: 6, name: 'nene', flagActive: true, createAt: 'fecha de hoy', code: 'nene-6'}];
createPropertyByOtherOne
create
code
usingid
value;
var persons = id: 1 name: 'wen' id: 5 name: 'JJ' id: 6 name: 'nene';const newPersons = // [ // { id: 1, name: 'wen', code: 1 }, // { id: 5, name: 'JJ', code: 5 }, // { id: 6, name: 'nene', code: 6 },// ]
equality
/** * @param {string, number} prop - propiedad a usar para comparar * @param {string, number} val - valor a comprar cuando se usa un item del tipo objeto * @param {object, string, number} item - cuando es un objeto se usa con val2, cuando es string o number se usa solo (val2 === null) */;
const a = 2;const b = 3; // false const personA = id: 1 name: 'wen';const personB = id: 2 name: 'JJ'; // true // false
const Abuelo = name: 'Andres' children: name: 'Jose Juan' children: name: 'Noah' // true
getPropertysValue
const grandMother = name: 'ada' age: 69 child: name: 'jose' age: 38 child: name: 'juan' age: 11 const grandChild = // 'juan'const granMothersName = // 'ada'const grandChildLastname = // 'undefined' // 'undefined' // 'undefined'
isEmpty
const emptyObject = {};const fullObject = age: 24 ;const emptyArray = ;const fullArray = 5;const emptyString = '';const fullString = 'hola mundo';const emptyNumber = 0;const fullNumber = 3; // true // false // true // false // true // false // true // false
isNotEmpty
const emptyObject = {};const fullObject = age: 24 ;const emptyArray = ;const fullArray = 5;const emptyString = '';const fullString = 'hola mundo';const emptyNumber = 0;const fullNumber = 3; // false // true // false // true // false // true // false // true
mergeObjects
const car = brand: 'toyota' model: 'forrunner'const driver = name: 'kaki' age: 33const road = roadName: 'trolcal 33' long: '433 Km' // { // roadName: 'trolcal 33', // long: '433 Km', // name: 'kaki', // age: 33, // brand: 'toyota', // model: 'forrunner',// } const p1 = name: 'jose'const p2 = name: 'juan' age: 28const p3 = name: 'Andres' age: 40 children: true // { name: 'Andres', age: 40, children: true } // { name: 'jose', age: 28, children: true }
removeItemFromArrayByIndex
const persons = id: 1 name: 'kaki' id: 2 name: 'churry' id: 3 name: 'ada' id: 4 name: 'javier' id: 5 name: 'juan' ;const adaIndex = ;// [ // { id: 1, name: 'kaki' }, // { id: 2, name: 'churry' }, // { id: 4, name: 'javier' }, // { id: 5, name: 'juan' },
removeItemFromArrayByProp
const persons = id: 1 name: 'kaki' id: 2 name: 'churry' id: 3 name: 'ada' id: 4 name: 'javier' id: 5 name: 'juan' ;persons// [ // { id: 1, name: 'kaki' }, // { id: 2, name: 'churry' }, // { id: 4, name: 'javier' }, // { id: 5, name: 'juan' },
returnUniqueArraysItems
var a = id: 1 name: 'wen' id: 2 name: 'are' id: 3 name: 'Tony' id: 4 name: 'Ada' id: 5 name: 'JJ';var b = id: 1 name: 'wen' id: 5 name: 'JJ' id: 6 name: 'nene';var c = id: 2 name: 'are' id: 6 name: 'nene' id: 7 name: 'jaime' // [ // {id: 1, name: 'wen'}, // {id: 2, name: 'are'}, // {id: 3, name: 'Tony'}, // {id: 4, name: 'Ada'}, // {id: 5, name: 'JJ'}, // {id: 6, name: 'nene'}, // {id: 7, name: 'jaime'},
round
const num = 34456789;const twoDecimals = ;const threeDecimals = // 34.46 // 34.457
setNewProperty
Basic
const person = id: 1 name: 'Andres';result: person = id: 1 name: 'Andres' age: 69
in Arrays
const persons = id: 1 name: 'Andres' id: 2 name: 'Ada' ;const personsUpdates = personsresult:persons = id: 1 name: 'Andres' age: 69 id: 2 name: 'Ada' age: 69 ;
currying
const persons = id: 1 name: 'kaki' age: 33 id: 2 name: 'jj' age: 38 id: 3 name: 'churry' age: 11 id: 4 name: 'nene' age: 6 ;const students = id: 1 name: 'kaki' age: 13 id: 2 name: 'jj' age: 18 id: 3 name: 'churry' age: 11 id: 4 name: 'nene' age: 6 ;const biggerThan30 = v > 30;const getAge = ;const existAnyBodyBiggerThan30 = ;const anyBodyBiggerThan30InPersons = ; // trueconst anyBodyBiggerThan30InStudents = ; // false
Identity
const five = 5; // 5 const arr = 1 2; // [1, 2] const obj = id: 1 code: 'abc' ; // { id: 1, code: 'abc' }
Decide
/** * * @param { function | Boolean } c - Condicional. Decide cuál función ejecutar * @param { function } f - Función a ejecutar si "c" es verdadero * @param { function | any } g - Función a ejecutar si "c" es falso. Si no es función, es retornado tal cual. * @param { object } i - Objeto que es argumento de todas las funciones anteriores */
const list = id:1 name: 'Pedro' id:2 name: 'Anyela' id:3 name: 'Arelis' id:4 name: 'Tony' ;const setAge = ;const isTony = ;const addAgeToTony = ;const updatedList = ;// { id:1, name: 'Pedro' },// { id:2, name: 'Anyela' },// { id:3, name: 'Arelis' },// { id:4, name: 'Tony', age: 30 },
const list2 = id:1 name: 'TOny' age: 2 id:2 name: 'Tony' age: 12 id:3 name: 'Tony' age: 20 id:4 name: 'Tony' age: 30 ;const is30 = ;const findTonyIndex = ;const tonyIndex = ; // tonyIndex = 3