npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

functions.js

v2.1.0

Published

A hub of numerous functions.

Readme

functions.js

npm npm Build Status GitHub stars PRs Welcome Open Source Love GitHub license

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