Created
December 28, 2021 07:17
-
-
Save wisehackermonkey/7561c2ba0b879ea548e467a0d41d3742 to your computer and use it in GitHub Desktop.
main.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*Helper functions | |
By Wisemonkey | |
github.com/wisehackermonkey | |
08/03/17 | |
libraray of function | |
for easy that i use all the | |
time | |
Comment schema | |
*/ | |
//---------fromhere---- | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : | |
-------------------------------------------- | |
Desc : | |
-------------------------------------------- | |
Param : | |
Return: | |
-------------------------------------------- | |
Long : | |
-------------------------------------------- | |
EX : | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
//----copy untill here------- | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : Print print() | |
-------------------------------------------- | |
Desc : | |
prints out data to console | |
-------------------------------------------- | |
Param : print(all data types) | |
Return Intager | |
-------------------------------------------- | |
Long : | |
print is just naming the native javascript | |
console.log() => print() | |
to make it easier to type | |
-------------------------------------------- | |
Links : | |
https://stackoverflow.com/questions/17365708/why-cant-i-rename-console-log#17365750 | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
print = console.log.bind( console ); | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : randInt() | |
-------------------------------------------- | |
Desc : generates random numbers | |
between to values min, max | |
-------------------------------------------- | |
Param : | |
Return: randInt(integer,integer) | |
randInt(Min,Max) | |
-------------------------------------------- | |
Long :returns a sumirandom number | |
between max and min | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
randInt = function( min, max ) { | |
return Math.floor( Math.random() * ( max - min + 1 ) ) + min; | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : random() | |
-------------------------------------------- | |
Desc : genrates radnom number | |
-------------------------------------------- | |
Param : random( intager) | |
Return: random value between 0 and max | |
-------------------------------------------- | |
Long : | |
EX : | |
var number = random(255); | |
print(number); // 0 - 255 | |
default no params | |
var number = random(); | |
print(number); // 0 - 100 | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
random = function( max ){ | |
if(max ){ | |
return randInt(0, max); | |
}else{ | |
max = 100; | |
return randInt(0, 100); | |
} | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : randString() | |
-------------------------------------------- | |
Desc : genartes random string of n length | |
-------------------------------------------- | |
Param : randString(intager) | |
Return: string ( 0-n length) Chars 'A' to '-' | |
-------------------------------------------- | |
Long : returns string made up of ascii values | |
32 - 127 (A to '-') respectivily | |
exampe output | |
93nx-./1a | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
randString = function( n ) { | |
var string = ''; | |
for( var i = 0; i < n; i++ ){ | |
string += randChar(); | |
} | |
return string; | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : randChar() | |
-------------------------------------------- | |
Desc : | |
-------------------------------------------- | |
Param : randChar(Integer, Integer) | |
Return: Char random between min, max ascii | |
-------------------------------------------- | |
Long : | |
EX : | |
var letter = randChar(); | |
print(letter); | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
randChar = function( min, max ) { | |
if( max && max >=0 ){ | |
return String.fromCharCode( randInt( min, max ) ); | |
}else if( min && min >=0 ){ | |
return String.fromCharCode( randInt( 0, min ) ); | |
}else{ | |
return String.fromCharCode( randInt( 32, 127 ) ); | |
} | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : range() | |
-------------------------------------------- | |
Desc : run callback function N times | |
-------------------------------------------- | |
Param :range( integer, callback fuction); | |
Return: | |
-------------------------------------------- | |
Long : runs a function abouch of times | |
making it easy to repeate same code with | |
a index i to work with | |
Exmple: | |
range( 11, callback fuction(i){ | |
print(i); | |
}); | |
//1,2,3,4,5,6,7,8,9,10,11 | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
range = function( start, func ) { | |
for ( var x = 0; x < start; x++) { | |
this.i++; | |
func.call( this, x ); | |
} | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : rangeMatrix() | |
-------------------------------------------- | |
Desc : runs though over 2d array and resutu | |
-------------------------------------------- | |
Param :rangeMatrix( integer or array, intager or array, callback fuction); | |
-------------------------------------------- | |
Long : runs a function abouch of times | |
making it easy to iterate over a 2d array | |
Exmple: | |
var output = []; | |
rangeMatrix( 3, 3, function( x, y){ | |
output.push( x, y ); | |
} ); | |
print( 'rangeMatrix: ', output ); | |
//rangeMatrix [ 0, 0, 0, 1, 0, 2, 1, 0, 1, 1, 1, 2, 2, 0, 2, 1, 2, 2 ] | |
var output = []; | |
rangeMatrix( [101, "x" , -66 ], 'hi', function( x, y ){ | |
output.push( x, y ); | |
} ); | |
print(' rangeMatrix: ', output ); | |
//rangeMatrix [ 101, 'h', 101, 'i', 'x', 'h', 'x', 'i', -66, 'h', -66, 'i' ] | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
rangeMatrix = function(row, col, func ) { | |
try { | |
if (!row) throw "row === null"; | |
if (!col) throw "col === null"; | |
if (!func) throw "No callback function IE \n\trangeMatrix(3,4, function(x,y){ \n\t\t\tprint(x,y);\n\t});"; | |
if ((typeof row === 'number') && (typeof col === 'number')) { | |
range(row, function (x) { | |
range(col, function (y) { | |
func.call(this, x, y); | |
}); | |
}); | |
} else { | |
range(row.length, function (x) { | |
range(col.length, function (y) { | |
func.call(this, row[x], col[y]); | |
}); | |
}); | |
} | |
}catch (err){ | |
console.error("ERROR rangeMatrix(): ", err); | |
} | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : arrToString() | |
-------------------------------------------- | |
Desc : concatnate array to string | |
-------------------------------------------- | |
Param : arrToString(Array) | |
Return: String of A[i] + A[i+1]....A[i+n] | |
-------------------------------------------- | |
Long : | |
EX : | |
arrToString(['Alis','#*%','KYLE','1']) | |
//Alis#*%KYLE1" | |
arrToString([4,6888,-1,101,2,0]) | |
//'"46888-110120"' | |
arrToString(['Alis','#*%','KYLE','1'], ' '); | |
//"Alis #*% KYLE 1" | |
arrToString([4,6888,-1,101,2,0], ' ') | |
//"4 6888 -1 101 2 0" | |
arrToString([4,6888,-1,101,2,0], ', ') | |
//"4, 6888, -1, 101, 2, 0" | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
arrToString = function( arr, paddingChar){ | |
if(! paddingChar ) paddingChar = ''; | |
var joined = ''; | |
for( var i in arr ){ | |
if( parseInt( i ) === arr.length - 1 ) { | |
joined += arr[ i ]; | |
}else{ | |
joined += arr[ i ] + paddingChar; | |
} | |
} | |
return joined; | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : padding() | |
-------------------------------------------- | |
Desc : returns correct padding for printing | |
-------------------------------------------- | |
Param : padding(String, Integer) | |
Return: String | |
-------------------------------------------- | |
Long : returns correct padding when | |
printing out multi line outputs | |
-------------------------------------------- | |
EX : | |
Pad strings START and END. | |
var start = "START"; | |
var end = "END"; | |
var out = start + padding( start, 13 ) + ": " + end; | |
print(out); | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
padding = function(str, padding) { | |
if(str) { | |
var inputString = str.toString(); | |
var spacer = ''; | |
var len = padding - inputString.length; | |
if (len < 0) { | |
len = 0; | |
} | |
for (var i = 0; i < len; i++) { | |
spacer += ' '; | |
} | |
return spacer; | |
}else{ | |
console.error("Error : padding()'s first argument is null or undefined."); | |
console.error("FIX : correct uses padding(String, Number)."); | |
} | |
} | |
/* | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : map() | |
-------------------------------------------- | |
Desc : maps num from range to range | |
-------------------------------------------- | |
Param : map(VAL,start, end, Min, max) | |
Return: float or int | |
-------------------------------------------- | |
Long : | |
EX : | |
var foo = 18; | |
var bar = map(VAL, 3, 18, 100, 4000) | |
print(bar); // | |
-------------------------------------------- | |
Links :// Link : https://stackoverflow.com/a/23202637/5460870 | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
*/ | |
map = function (number, in_min , in_max , out_min , out_max ) { | |
return ( number - in_min ) * ( out_max - out_min ) / ( in_max - in_min ) + out_min; | |
}; | |
Number.prototype.map = function ( in_min , in_max , out_min , out_max ) { | |
return ( this - in_min ) * ( out_max - out_min ) / ( in_max - in_min ) + out_min; | |
}; | |
//unique() | |
//print("unique: ",unique([1,1,6,3,4,5,3,51,1])); | |
unique = function(arr){ | |
return arr.filter(function (item, pos) {return arr.indexOf(item) === pos;}); | |
}; | |
/* | |
flattenArr() | |
flattenArr([[1,2,3],[5,6,7],[8,9,10]]) | |
var out = flattenArr([[1,2,3],[5,6,7],[8,9,10]]); | |
print(out); | |
*/ | |
flattenArr = function (arr) { | |
var output = []; | |
for (var i in arr) { | |
for (var j in arr[i]) { | |
output.push(arr[i][j]); | |
} | |
} | |
return output; | |
}; | |
decToBin = function (dec) { | |
if(dec >= 0) { | |
return dec.toString(2); | |
}else { | |
return null; | |
} | |
}; | |
binToDec = function (binary){ | |
return parseInt(binary.toString(), 2); | |
}; | |
xor = function (source, target ) { | |
return source ^ target; | |
}; | |
//todo documentation | |
// Math | |
sq = function (x) { | |
return Math.pow(x,2); | |
} | |
acos = function(x) { | |
return Math.acos(x); | |
} | |
sqrt = function(x) { | |
return Math.sqrt(x); | |
} | |
atan = function(x) { | |
return Math.atan(x); | |
} | |
degrees = function(radians) { | |
return radians * (180/Math.PI); | |
} | |
radians = function(degrees) { | |
return degrees * (Math.PI/180); | |
} | |
/* | |
TODO | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
Name : permutate() | |
-------------------------------------------- | |
Desc : creates array of all posable combos | |
-------------------------------------------- | |
Param : permutate(ARRAY); | |
Return: array of cobonations | |
-------------------------------------------- | |
Long : | |
encludes duplicates | |
-------------------------------------------- | |
EX : | |
var arr = permutate(['W','O','R','D']); | |
print(arr); | |
-------------------------------------------- | |
Links : | |
-------------------------------------------- | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
perm = function(inputArr) { | |
var results = []; | |
function permute(arr) { | |
var cur, memo = []; | |
for (var i = 0; i < arr.length; i++) { | |
cur = arr.splice(i, 1); | |
if (arr.length === 0) { | |
results.push(memo.concat(cur)); | |
} | |
permute(arr.slice(), memo.concat(cur)); | |
arr.splice(i, 0, cur[0]); | |
} | |
return results; | |
} | |
print("results:", permute(inputArr)); | |
return permute(inputArr); | |
} | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment