handyscript
Version:
A set of useful modules that makes the javascript development context easier
188 lines (134 loc) • 4.69 kB
Markdown
<p align="center">
<img height="200" alt="Handy Script Logo" src="assets/HSlogo.png"/>
</p>
<h1 align="center">Handy Script</h1>
<p align="center">
A set of useful javascript modules that makes the javascript development context easier
</p>
<p align="center">
<img alt="NPM DOWNLOADS" src="https://img.shields.io/npm/dw/handyscript?color=5319e7&style=flat-square">
<img alt="NPM LICENSE" src="https://img.shields.io/npm/l/handyscript?color=k&label=license&style=flat-square">
<img alt="NPM VERSION" src="https://img.shields.io/npm/v/handyscript?color=ff6905&label=npm&style=flat-square">
</p>
You can install **Handy Script** using npm:
```shell
npm install handyscript
```
Alternatively, you can use the **CDN** script to include the `hs.min.js` in your HTML file
```html
<script src="https://unpkg.com/browse/handyscript@1.0.0/dist/hs.min.cjs"></script>
```
Alternatively, you can use the **CDN** script to include the `hs.min.js` in your HTML file
```html
<!-- VIA: jsdelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/handyscript@latest/dist/hs.min.js"></script>
<!-- VIA: unpkg CDN -->
<script src="https://unpkg.com/handyscript@latest/dist/hs.min.js"></script>
```
Otherwise, you can download the `hs.min.js` file from the [dist](./dist/hs.min.cjs) directory and include it in your HTML file, or [click here](https://cdn.jsdelivr.net/npm/handyscript@latest/dist/hs.min.cjs) to download it directly
```html
<script src="path/to/hs.min.js"></script>
```
Once you have installed or included the **hs.min.js** file, you can start using the functions in your code.
```javascript
// Import the handyscript to extend the prebuilt js modules
import "handyscript";
// explicitly use the HOperators, HashMap
// 1
import { HOperators, HashMap } from "handyscript"
// 2
import { and, or, objloop } from "handyscript"
// Array manipulation:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.chunk(3)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
console.log(arr.shuffle()); // [3, 2, 5, 1, 4, 6, 7, 8, 10, 9]
console.log(arr.shuffle().bubbleSort()); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// The Math Module:
console.log(Math.randomInt(1, 10)); // 7
// HashMap
const obj = {
name: "John",
age: 20,
weight: 70,
height: 180,
isMarried: true,
isStudent: true,
};
const map = new HashMap(obj);
console.log(map.getKeysByValue(true)); // ["isMarried","isStudent"]
// Operators:
const obj = { name:"ahmed", age: 20 };
HOperators.objloop(obj, (key, val) => console.log(key, val))
// name ahmed
// age 20
```
```javascript
Array.prototype.shuffle()
```
Shuffles the elements of the array array and returns a new array.
```javascript
Array.prototype.binarySearch(item, sortalgo)
```
The `binarySearch` method searches an array for the specified item using the binary search algorithm. you can specify the sort algorithm to be used in sorting the array before searching
> There is more to discover ✨
> It cover the most known/popular sort algorithms:
```javascript
Array.prototype.bubbleSort()
```
Sorting the array using specific sort algorithms like : `bubbleSort`
- bubbleSort
- insertionSort
- selectionSort
- mergeSort
- quickSort
- heapSort
- countingSort
- shellSort
- bucketSort
- radixSort
> There is more to discover ✨
```javascript
import { Matrix } from "handyscript";
// Example usage
const matrix1 = new Matrix([
[],
[],
]);
const matrix2 = new Matrix([
[],
[],
[],
]);
const matrixAdd = Matrix.add(matrix1, matrix2);
console.log("Matrix 1 + Matrix 2:");
matrixAdd.log();
const matrixMulti = Matrix.multiply(matrix1, matrix2);
console.log("Matrix 1 * Matrix 2:");
matrixMulti.log();
```
> There is more to discover ✨
```javascript
Math.clamp(value, min = 1, max)
```
Returns a value that is clamped between min and max.
> There is more to discover ✨
```javascript
String.prototype.toCapitalCase()
```
Capitalize the given string.
> There is more to discover ✨
```javascript
Number.prototype.toHuman()
```
Returns a string representation of a number in human readable format. like 1K, 1M, 1B, 1T, etc.
> There is more to discover ✨