functions.js
v2.1.0
Published
A hub of numerous functions.
Maintainers
Readme

functions.js
functions.js is a hub of various functions or methods which act differently according to their functionality.
- Please feel free to contribute, read the contributing guide.
- The code is written in ES6.
Install
The project is up on npm and can be used in a project by:
npm install --save functions.js
Usage
Below is an example on how to use the library into your projects.
const func = require('functions.js');
const algo = new func.algorithms();
const mathematics = new func.mathematics();
const strings = new func.strings();
console.log(strings.camelize('john doe'));
//returns 'johnDoe'
console.log(mathematics.factorialOneLine(5));
//returns 120
console.log(algo.selectionSort([5,10,3,1]));
//returns [1,3,5,10]
Client Side
The library can be loaded as a standalone script.
<script type="text/javascript" src="https://unpkg.com/functions.js/umd/FJS.min.js"></script>
<script type="text/javascript">
const algo = new FJS.algorithms();
console.log(algo.nthLargest([5,6,9,8,4,2,1]));
//=> returns 9
</script>Methods
| Method Name | Category | Description | Return Type |
| ------------| ------------| ------------| ------------|
|anagram(str1, str2) |string |Both strings are anagrams |boolean |
|average(arr) |math |Calculates the average of an array |number |
|binarySearch(arr, elem) |algorithm |Search an element using binary search tehcnique |number(position) |
|bubbleSort(arr) |algorithm |Sort an array using bubble sort technique |array |
|camelize(str) |string |Camelize a string i.e CamelCase |string |
|catalan(number) |math |Catalan Number |number |
|changeBase(number, original, final) |math |Convert a base of a number to any base. |number |
|chunk(arr, size) |math |Split array into chunks of smaller arrays of the desired size. |array |
|clamp(number, min, max) |math |Clamp a number. |number |
|collatz(number) |algortihm |Collatz Algorithm. |number |
|combination(number,rep) |math |Calculates simple combination. |number |
|concat(...arrs) |algorithm |Concatenates into a single array. |arr |
|cosineRule(sideOne, sideTwo, theta) |math |Cosine Rule. |number |
|countPrimeFactors(n) |math |A function to count all prime factors of a given number. |number |
|countVowels(str) |string |Count the number of vowels in a string. |number |
|degToRad(deg) |math |Convert degrees to radians. |number |
|differenceBetweenDates(date1, date2) |math |Simple division function which returns an array of quotient & remainder. |array |
|digitalRoot(number) |math |Digital Root of a number |number |
|division(dividend, divisor) |math |Simple division function which returns an array of quotient & remainder. |array |
|doublefactorial(n) |math |Print semi-factorial or double factorial of number using the iterative approach. |number |
|escape(str) |string |Escape characters from string |string |
|euclideanDistance(initial, final) |math |Calculates the distance between two points in any plane. initial takes an array of initial points & final takes an array of final points. |number |
|factorialRecursive(n) |math |Print factorial of a number using recursive function approach. |number |
|factorialIterative(n) |math |Print factorial of a number using iterative approach. |number |
|factorialOneLine(n) |math |Print factorial of a number using a ternary operator. |number |
|factCountTrailingZeroes(n) |math |Print the count of trailing zeroes in n!. |number |
|fibRecursion(n) |math |Print nth fibonacci number using recursion. |number |
|fibDynamic(n) |math |Print nth fibonacci number using dynamic programming approach. |number |
|filter(arr, elem) |string |Filter out an element from an array |array |
|filterFalsy(arr) |string |Filter out falsy values from an array |array |
|fisherYates(arr) |math |Shuffle an array using the Fisher Yates Algorithm using a while loop. |array |
|fizzBuzz(n) |algorithm |FizzBuzz Algorithm: most famous asked question. |string |
|flatten(arr, givenArr) |algorithm |Flatten/Merge two arrays. |array |
|geometricVariance(probability) |math |Calculate geometric variance. |number |
|gcd(numb1, numb2) |math |Calculate the greatest common divisor among the two numbers using Euclideans algorithm. |number |
|generateHexColor() |string |Generate random hex color. |string |
|generateRGBColor() |string |Generate random RGB color. |string |
|guid(len) |string |Generate a Global Unique Identifier |string |
|hammingDistance(number1, number2) |math |Calculate hamming distance. |number |
|hasAtleastOneUpperCaseLetter(str) |string |String has atleast one upper-cased letter. |boolean |
|hasAtleastOneLowerCaseLetter(str) |string |String has atleast one lower-cased letter. |boolean |
|hexToRgb(hex) |string |Converts hex color to RGB. |array |
|humanizeNumber(num) |string |Humanize a number. |string |
|insertionSort(arr) |algorithm |Sort an array using the insertion sort technique. |array |
|integerReversal(integer) |mathematics |Reverse an integer. |number |
|isASCII(str) |string |String contains ASCII characters |boolean |
|isBool(str) |string |String contains true or false |boolean |
|isDataURI(str) |string |String is a data uri format. |boolean |
|isDivisible(dividend, divisor) |math |Check if the first number is divisible by second one. |boolean |
|isEmoji(str) |string |String is an emoji. |boolean |
|isEmpty(str) |string |String is empty. |boolean |
|isEndWith(str, target) |string |String ends with target. |boolean |
|isEquals(str, elem) |string |Compares the two strings entered. |boolean |
|isEven(number) |math |True if a number is even, false otherwise. |boolean |
|isFunction(val) |string |Value is a function. |boolean |
|isHexaDecimal(str) |string |String is hexadecimal. |boolean |
|isHexColor(str) |string |String is a hex color. |boolean |
|isIPAddress(str) |string |String is an IP address. |boolean |
|isJSON(str) |string |String is a JSON object. |boolean |
|isLowerCase(str) |string |String is all lower-cased. |boolean |
|isMACAddress(str) |string |String is a MAC Address. |boolean |
|isMD5(str) |string |String is a a MD5 type. |boolean |
|initials(str) |string |Get the initials of a persons name. |string |
|isOdd(number) |math |True if a number is odd, false otherwise. |boolean |
|ISO8601WeekNumber(dateObj) |string |Get ISO-8601 week number of a year. |number |
|isPalindrome(str) |string |String is a palindrome. |boolean |
|isPrime(number) |string |Number is a prime. |boolean |
|isUpperCase(str) |string |String is all upper-cased. |boolean |
|isValidEmail(str) |string |String is a valid email id. |boolean |
|kebabCase(str) |string |to Kebab Case. |string |
|lcm(arr) |math |Calculate LCM of an array of numbers |number |
|leibniz(limit) |math |Predict the value of PI |number |
|linearSearch(arr, elem) |algorithm |Search an element using linear search technique |number(position) |
|lineFromPoints(initial, final) |math |Create a line from [x1, y1] & [x2, y2] in XY plane. |string |
|maxOrMin(arr, task) |math |Get maximum or minimum of an array |number |
|median(arr) |math |Calculate median of a sorted number array |number |
|modularExponential(base, power, mod) |algorithm |Modular Exponential Algorithm |number |
|nthRoot(number, n) |math |Calculates the nth root of a positive number |number |
|nthSGonalNumber(sides, number) |math |Calculates the nth s-gonal number of 'sides' polygon |number |
|nthLargest(arr, nth) |algorithm |Find the nth largest number from an unsorted array |number |
|permutation(num,rep) |math |Calculates simple permutation. |number |
|pythagorasDistance(arg1, arg2) |math |Calculate the pythogorean distance if arg1 and arg2 are 2 sides of a right-angled triangle. |number |
|radToDeg(rad) |math |Convert radians to degrees |number |
|remove(arr) |algorithm |Remove an element from an array |arr |
|removeDuplicate(arr) |algorithm |Remove duplicates from an array |arr |
|removeTags(str) |string |Remove tags from an HTML statement |string |
|reverse(arr) |algorithm |Reverse an array |arr |
|reverseInPlace(str) |string |Reverse words of a sentence in place |string |
|rgbToHex(red,green,blue) |string |RGB to Hex format |string |
|romanize(num) |string |Romanize a number |string |
|round(number) |math |Round a number to two places |number |
|secureEmail(str) |string |Secures your email using asterisks |string |
|securePassword(str) |string |Secure password using astrisks |string |
|segregate(arr) |algorithm |Segregate 0's and 1's in an array |array |
|selectionSort(arr) |algorithm |Sort an array using the selection sort technique |arr |
|sigmoid(number) |math |Sigmoid Function |number |
|sineRule(sideOne, angleOne, angleTwo) |math |Sine Rule using two angles & one side |number |
|slopeOfALine(arg) |math |Calculates the slope of a line using points and angle of inclination. arg takes angle of inclination or an array of initial points and final points. Example arg = 60 degrees or [x0,y0,x1,y1] |number |
|snakeCase(str) |string |to Snake Case |string |
|sortChar(str) |string |Sort string characters in alphabetical order |string |
|splitName(str) |string |Return the first name and the last name of a person's name. |array |
|stringHammingDistance(str1, str2) |string |String Hamming Distance |number |
|subtract(firstNum, secondNum) |math |Subtract a number from another |number |
|sumOfArray(arr) |math |Addition of all the integers in an array |number |
|thousandSeperator(num) |string |Seperate thousands using commas |number |
|toFloat(str) |string |Parse string to float value |number |
|toInt(str) |string |Parse string to integer value |number |
|toTitleCase(str) |string |Convert string to titleCase |string |
|truncate(str,pos) |string |Truncate a string at provided position |string |
|trailingAndLeading(arr) |string |Remove leading and trailing zeroes from an array |array |
|unescape(str) |string |Unescape the string. |string |
|uuid() |string |Generate a UUID i.e universally unique identifier. |number |
|zeroFill(number, len) |string |Zerofill a number to the given length. |number |
Documentation
You can find the documentation of the package over here
Test
Run the following command:
npm run test
About
The project is a continuation to a package previously owned by me named okay-string. I thought of renaming it to functions & learn more by actually practicing functions. That's how functions.js was created.😍
FAQ🙋
Here are some solutions to frequently asked questions:
Q. How to use ?
Take a look over here.
Q. Another lodash or underscore ?
These two libraries are industry standards & are widely used. They have a ton of great, useful functions to use in a project. There is a difference. functions.js was created to learn predefined methods and make something out of it by creating a new method. So i think there is no comparison between this & the other two libraries.
Q. How do i contribute ?
Read the guidelines mentioned here
License📃
The project is licensed under MIT
