🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

helprjs

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

helprjs

Helprjs is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects

1.0.68
latest
Version published
Maintainers
1
Created

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: 'test@validEmail.com'  },
    { 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.  

FAQs

Package last updated on 14 Jun 2024

Did you know?

Socket

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