Socket
Socket
Sign inDemoInstall

helprjs

Package Overview
Dependencies
0
Maintainers
1
Versions
66
Alerts
File Explorer

Advanced tools

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


Version published
Weekly downloads
24
increased by9.09%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

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

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.  

Keywords

FAQs

Last updated on 18 Dec 2023

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