UNPKG

same.js

Version:

A Class of Parallel Arrays Manipulation

227 lines (210 loc) 10.7 kB
## **Installation** ```sh-session npm i same.js ``` ## **Example Usage** ### Initialize: ```javascript const { Same } = require("Same"); var same = new Same(); ``` ### insert() and over() ```javascript same.insert(1, "one"); // inserts 1 in the first array and "one" in the second array console.log(same.over(1) + "\n" + same.over("one")); // outputs the overwritten element for the index of the value 1 and the overwritten element for the index of the value "one" ``` ### has() ```javascript async function main() { same.insert(1, "one"); // same.insert(2, "two"); // inserts many values in the Same same.insert("uno", 1); // console.log(await same.has(1)); // checks if the Same has the value 1 and outputs an array of objects containing the index and the number of array where the value 1 is stored } main() // calls an async function (THE MODULE has() MUST BE AWAITED) ``` ### replaceUnd() ```javascript async function main() { let ar1 = [0, 1, 2, 3]; // creates a 4-indexed array let ar2 = ["zero", "one", "two"]; // creates a 3-indexed array same.insert(ar1, ar2); // inserts the arrays in the Same; since ar2 has one value less than ar1, in the second array there will be an empty space await same.replaceUnd(["three"]) // the empty space is overwritten with the string "three" console.log(same); } main() // calls the async function (THE MODULE replaceUnd() MUST BE AWAITED) ``` ### replace() ```javascript same.insert(1, "one"); same.insert(2, "two"); same.replace(1, false, "one", 1); // replaces the indexes in the Same of the value 1 with "one" in the first array and 1 in the second same.replace(1, true, "two", 2); // replaces the indexes 1 in the Same with "two" in the first array and 2 in the second console.log(same); ``` ### cut() ```javascript for (let i = 0; i < 10; i++) { same.insert(i, i - i * 2); // inserts in the first array every number from 0 to 9 and in the second array every number from 0 to -9 } console.log(same); console.log("\n\n\n"); console.log(same.cut(2, 4)); // outputs the object with two arrays with every element of the first and second array inside the indexes 2 and 4 ``` ### remove() ```javascript for (let i = 0; i < 10; i++) { same.insert(i, i - i * 2); // inserts in the first array every number from 0 to 9 and in the second array every number from 0 to -9 } same.insert("hello", "ciao") // inserts in the first array the string "hello" and in the second array the string "ciao" console.log(same); console.log("\n\n\n"); same.remove(0); // removes the indexes 0 for both arrays same.remove("hello") // removes the indexes of the value "hello" for both arrays same.remove([1, 3, 5, 7, 9], false) // removes every odd number from the arrays console.log(same); ``` ### forEach() ```javascript async function main() { for (let i = 0; i < 10; i++) { same.insert(i, i - i * 2); // inserts in the first array every number from 0 to 9 and in the second array every number from 0 to -9 } await same.forEach((element) => { // starts to loop throught every element in the same console.log(element) // every time the loop executes it outputs the element }) } main() // calls and async function (THE MODULE forEach() MUST BE AWAITED) ``` ### charNumbInsert() ```javascript async function main() { await same.charNumbInsert(-4, 9); // inserts in the first array every number from -4 to 9, translates them into spoken language and inserts the strings in the second array await same.forEach((element) => { console.log(element); // outputs every element in the Same }) } main() // calls an async function (THE MODULE charNumbInsert() MUST BE AWAITED) ``` <!--COMPLETE DOCUMENTATION HERE> <--> ## Complete Documentation **Same** ###### The deposit from where the parallel arrays manipulation starts ### Constructor ```javascript new Same(); ``` ```javascript Properties = { first, second, timestamp } Methods = { insert(), over(), has(), replaceUnd(), replace(), cut(), remove(), forEach(), cherNumbInsert(), NoValue(), NoFn(), _0Value() } ``` ### Properties - .first ###### The first array, where the variables are stored ###### **Type**: Array - .second ###### The second array, where the variables are stored ###### **Type**: Array - .timestamp ###### The moment when the Same was created ###### **Type**: Date ### Methods - **.insert(firstValue, secondValue)** ###### Inserts in the Same two values ###### To Note: When both *firstValue* and *secondValue* are objects or arrays, insert() will automatically add every property or element in the next indexes Parameter | Type | Description --------- | ---- | ----------- firstValue | any | The value stored in the first array of the Same secondValue | any | The value stored in the second array of the Same ###### **Returns: number <*The new Same length*>** - **.over(value)** ###### Overwrites the value into the corresponding one; if there are more indexes with the same value, it returns an array of its overwritten values ###### To Note: Value will be read only as element inside the Same Parameter | Type | Description --------- | ---- | ----------- value | any | The value in the same index of its correspoding ###### **Returns: any <*The corresponding value of the first parameter*>** - **.has(value)** ###### Loops thorught every element in the Same and checks if there's the value to search for ###### To Note: has() does not return *true*, instead, a *object[]* Parameter | Type | Description --------- | ---- | ----------- value | any | The value to check ###### **Returns: boolean | object[] <*If the value is not in the same returns false, else returns more objects containing infos about the position of the value found*>** - **.replaceUnd(elements)** ###### Replaces every undefined variable inside the Same (FROM THE FIRST ARRAY TO THE SECOND) Parameter | Type | Description --------- | ---- | ----------- elements | any[] | The array of elements to replace in order ###### **Returns: number <*The new Same length*>** - **.replace(index, isIndex, firstElement, secondElement)** ###### Replaces the variables in the Same from the index Parameter | Type | Description --------- | ---- | ----------- index | number or any | The index of the variables to replace (it can be one of the values itself) isIndex | boolean | Checks if the number inserted as *index* is an index or a variable inside the Same firstElement | any | The value to replace in the first array secondElement | any | The value to replace in the second array ###### **Returns: any[] <*An array of the replaced elements*>** - **.cut(firstIndex, lastIndex)** ###### Only returns an Object with an array of a part from the first and second arrays ###### To Note: cut() does not delete any elements from the same Parameter | Type | Description --------- | ---- | ----------- firstIndex | number or any | The index of the Same from where the selection starts (it may be the value of the index itself) lastIndex | number or any | The index of the Same form where the selection ends (it may be the value of the index itself) ###### **Returns: object <*The container of the elements cut in the first and second array*>** - **.remove(value, isIndex, spaces)** ###### Removes one or more elements at the indexes Parameter | Type | Description --------- | ---- | ----------- value | number or any | The index from where the selection starts; it can be the value of the index itself; if it's an array of values, *spaces* can be omitted isIndex | boolean | Decides if the value must be an index of the array or the value of an element spaces | number | The number of indexes that will be removed after the first one (default: 1) ###### **Returns: number <*The new Same length*>** - **.length()** ###### Reads how long is the first array of the Same ###### **Returns: number <*The Same length*>** - **.forEach(callback)** ###### Executes a code for every elements inside the first array of the Same first, and then in the second one Parameter | Type | Description --------- | ---- | ----------- callback | Function | The code that will be executed with every elements in the Same as parameter ###### **Returns: Promise<any> <*Nothing.*>** - **.charNumbInsert(from, to)** ###### Translates every number between the parameters (included) from decimal to spoken language and inserts the numbers in the first array, and the translations in the second one ###### To Note: min value: -9999, max value: 9999 Parameter | Type | Description --------- | ---- | ----------- from | number | The number from where the translation will start to | number | The number from where the translation will end ###### **Returns: number <*The new Same length*>** - **.NoValue()** ###### Generates and thorws an error where the value to overwrite was not in the Same - **.NoFn()** ###### Generates and throws an error where the argument was not a Function to execute - **._0Value()** ###### Generates and throws an error where the argument was not a number ## Author cheeseburger006 ## Author's Links - [Instagram](https://www.instagram.com/cheeseburger006/) - [GitHub](https://github.com/cheeseburger006) - [Discord-Server](https://discord.gg/SrSG7Jdw8a)