helprjs
v1.0.68
Published
Helprjs is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects
Downloads
261
Maintainers
Readme
helprjs
A toolkit to help solve challenging tasks with object and arrays. Helprjs is fully documented with live Demos and its really simple to use!
Q&A:
Whilst helprjs is fully tested should you ecounter issues please report them.
Most of the examples here make use of this people object.
const people = [
{ id: 1, firstName: 'John', secondName: 'Smith', age: '61', status: 1 },
{ id: 2, firstName: 'John', secondName: 'West', age: '55', status: true },
{ id: 3, firstName: 'Brenda', secondName: 'Holt', age: '60', status: false },
{ id: 4, firstName: 'Sally', secondName: 'Brampton', age: '33', status: undefined },
{ id: 5, firstName: 'June', secondName: 'Chester', age: '47', status: NaN },
{ id: 6, firstName: 'Jack', secondName: 'Carter', age: '24', status: null },
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 },
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 },
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 },
];
Methods
Methods can be grouped into the following categories:
General : object array manipulation
Array: array only
Boolean : returns true or false
Helpers : deals with values
Numerical : uses numerical data
Vailidation : returns only objects that meet the valid criteria
Latest
maskSensitiveData
Masks sensitive data
Useage:
const people = [
{ id: 1, firstName: 'John', secondName: 'Smith', age: '61', status: 1 },
{ id: 2, firstName: 'John', secondName: 'West', age: '55', status: true },
];
const masked = maskSensitiveData(people, ['firstName', 'secondName']);
Output:
[
{ id: 1, firstName: '****', secondName: '*****', age: '61', status: 1 },
{ id: 2, firstName: '****', secondName: '****', age: '55', status: true },
]
findAllDuplicates
returns an array of duplicate objects
Useage:
const people: Person[] = [
{ id: 1, firstName: "John", secondName: "Smith", age: "61", status: 1 },
{ id: 2, firstName: "John", secondName: "West", age: "55", status: true },
{ id: 3, firstName: "Brenda", secondName: "Holt", age: "60", status: false },
{ id: 4, firstName: "Sally", secondName: "Brampton", age: "33", status: undefined },
{ id: 5, firstName: "June", secondName: "Chester", age: "47", status: NaN },
{ id: 6, firstName: "Jack", secondName: "Carter", age: "24", status: null },
{ id: 7, firstName: "Jack", secondName: "Foster", age: "58", status: 0 },
{ id: 7, firstName: "Jack", secondName: "Foster", age: "58", status: 0 },
{ id: 7, firstName: "Jack", secondName: "Foster", age: "58", status: 0 },
];
const duplicates = findAllDuplicates(people);
console.log(duplicates);
[
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 },
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 },
{ id: 7, firstName: 'Jack', secondName: 'Foster', age: '58', status: 0 }
]
General
mergeArraysRemoveDuplicates - Demo
merges two arrays and removes all duplicates
Useage:
const array1 = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
const array2 = [{ id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }];
const mergedArray = mergeArraysRemoveDuplicates(array1, array2);
deGroup - Demo
reverses a grouped object.
deGroup(people, groupObject)
returns 9 objects
objectToArray - Demo
pass in an object
Useage: objectToArray({firstName: 'Mike', lastName: 'Jones', age: 34, registered: true})
Returns ['Mike', 'Jones', 34, true]
arrayToObject - Demo
pass in an array of values
Useage: arrayToObject(["Mike","Jones",34,true])
Returns {0: 'Mike', 1: 'Jones', 2: 34, 3: true}
pass in an array of values and custom keys
Useage: arrayToObject(["Mike","Jones",34,true], ["firstName", "lastName","age","registered"])
Returns {firstName: 'Mike', lastName: 'Jones', age: 34, registered: true}
addNewProperty - Demo
addNewProperty(people, 'registered', true)
adds new key/value to all objects.
countKeys - Demo
countKeys({a:1, b:2, c:3});
// 3
CSVtoArray - Demo
CSVtoArray(csvfile');
// [ {...} {...} ]
getEven - Demo
getEven(people,'age');
returns objects containing only even values
getObject - Demo
getObject(people,2);
returns an object from an array from array key
getOdd - Demo
getOdd(people,'age');
returns objects containing only odd values
getValues - Demo
getValues(people, 'firstName');
// ["John", "John", "Brenda", "Sally", "June", "Jack", "Jack"]
groupByKey - Demo
groupByKey(people, 'firstName')
// {John: Array(2), Brenda: Array(1), Sally: Array(1), June: Array(1), Jack: Array(2)}
mergeArrays - Demo
mergeArrays(arr1,arr2,key);
returns a single merged array
randomOrder - Demo
randomOrder(people);
returns randomly ordered array
refine - Demo
const result = refine(people, "firstName", "Jack");
// return only objects that match criteria
removeDuplicates - Demo
removeDuplicates(people, 'firstName');
removes all objects containing duplicates values
removeFalsy - Demo
removeFalsy(people, 'status');
removes all objects containing falsy values
removeValue - Demo
removeValue(people,'firstName', 'John');
remove all objects that have this value
Note: 1 and '1' will give a different result, be sure to include quotation marks if targetting a string
setAllValues - Demo
setAllValues(people, 'age', '25');
(sets all values to 25)
sortByKey - Demo
sortByKey(people, 'age', 'desc');
returns object in value order
Note, 3rd paramenter is optional. desc = decending order.
toArray - Demo
toArray(people, 'age');
// ["61","55","60","33","47","24","58"]
toLower - Demo
toLower(people, 'firstName');
returns object with values as lowercase
toUpper - Demo
toUpper(people, 'firstName');
returns object with values as uppercase
toString - Demo
toString(people, 'id');
returns object with values as a string
toTruncate - Demo
toTruncate(people, 'firstName', 3);
returns object with values truncated to numerical value
toNumber - Demo
toNumber(people, 'age');
returns object with values as numbers
toTrim - Demo
toTrim(people, 'firstName');
returns object values with whitespace removed
Array
isEmptyArray
isEmptyArray([1,2]);
false
getAverage
getAverage([1, 2, 3, 4, 4, 4]));
3
concatArray - Demo
pass in an array of arrays
Useage: concatArray([ [1,2],["three", "four"],[5],[6] ])
Returns [1,2,"three","four",5,6]
populateArray - Demo
populateArray(0,20,4)
// [4,8,12,16,20]
uniqueArray - Demo
uniqueArray(["one",1,1,2,3,"two","three","four","one","two"])
// ["one", 1, 2, 3, "two", "three", "four"]
emptyArray - Demo
emptyArray(["one","two","three","four"])
// []
reverseArray - Demo
reverseArray([0,1,2,3,4,5,6])
// [6,5,4,3,2,1,0]
shuffleArray - Demo
shuffleArray([0,1,2,3,4,5,6])
// [4,0,1,6,5,3,2]
Boolean
isAll - Demo
pass in object array, key and function.
const isBelow = (currentValue) => currentValue < 99;
const result = isAll(people, 'age', isBelow)
console.log('result', result)
// true
isPresent - Demo
pass in object array, key and function.
const age = 48;
const isBelow = (currentValue) => currentValue < age;
const result = isPresent(people, "age", isBelow);
console.log('result', result)
// true
isArray - Demo
isArray([1,2,3]);
// true
isBigint - Demo
isBigint(9007199254740991n);
// true
isBoolean - Demo
isBoolean(true);
// true
isNaN - Demo
isNaN(NaN);
// true
isNull - Demo
isNull(null);
// true
isNumber - Demo
isNumber(1);
// true
isObject - Demo
isObject({x:1, y:2});
// true
isString - Demo
isString('abc'});
// true
isSymbol - Demo
isSymbol(Symbol());
// true
isUndefined - Demo
isUndefined(undefined);
// true
Helpers
percentage - Demo
percentage(partial, total)
// percentage(50, 200)
// 25
// calculate percentage of partial against total number
typeOf - Demo
typeOf(value);
// typeOf(1); returns "number"
// typeOf([1,2,3]); returns "array"
// typeOf({x: 1}); returns "object"
randomId - Demo
randomId();
// Random ID generator
// zxrm95d6ug
String
capitalise('hello world')
Returns 'Hello world'
Numerical
getMaximum - Demo
getMaximum(people,'age');
// 61
getMinimum - Demo
getMinimum(people,'age');
// 24
getTotal - Demo
getTotal(people, 'age');
returns sum total
Validation
getValidEmail
getValidEmail( [
{ id: 1, email: 'badEmailDotgmail.com' },
{ id: 2, email: '[email protected]' },
{ id: 3, email: 'test@badEmail' }
],'email')
returns only objects containing valid email addresses
getValidString
getValidString(people, 'firstName', 5, 99)
//Note: (array, key, minimumLength, maximumLength)
returns only objects containing text within min and max length
Combination - Demo
In this example five methods have been used to generate a desired output.
It is overengineered and an unlikely requirement however it demonstrates
more possibilities when using helprjs.