Skip to content

Instantly share code, notes, and snippets.

@wisehackermonkey
Created December 28, 2021 07:17
Show Gist options
  • Save wisehackermonkey/7561c2ba0b879ea548e467a0d41d3742 to your computer and use it in GitHub Desktop.
Save wisehackermonkey/7561c2ba0b879ea548e467a0d41d3742 to your computer and use it in GitHub Desktop.
main.js
/*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