Skip to content

Instantly share code, notes, and snippets.

View TheGreatRambler's full-sized avatar
🎯
Focusing

TheGreatRambler TheGreatRambler

🎯
Focusing
View GitHub Profile
@TheGreatRambler
TheGreatRambler / webworkerfunc.js
Last active March 24, 2018 17:47
A function that can be used to run functions in web workers
// Function that can run a function supplied in a web worker
// MIT License Copyright TheGreatRambler
// Free to use
function runInWebWorker(func, argsarray, callback) {
// func: function to use
// argsarray: the arguments to pass
// callback: the callback function
var blobdata = 'var returnstatement=(' + func.toString() + ')(' + argsarray.join(",") + ');self.postMessage(returnstatement);self.close();';
console.log(blobdata);
var blobURL = URL.createObjectURL(new Blob([blobdata], {
@TheGreatRambler
TheGreatRambler / headers.js
Created March 4, 2018 21:48
Get headers of file from ajax request
function returnheaders(ajaxrequest) {
var headers = ajaxrequest.getAllResponseHeaders();
var arrofheaders = headers.trim().split(/[\r\n]+/);
var mapofheaders = {};
arrofheaders.forEach(function (line) {
var parts = line.split(': ');
var header = parts.shift();
var value = parts.join(': ');
mapofheaders[header] = value;
});
@TheGreatRambler
TheGreatRambler / arrayruiner.js
Last active February 15, 2018 17:12
Use this function to randomly ruin a array by splitting it up and inserting those chunks in random places.
function randomlySplitArray(inputarray, chunksize, numofloops) {
function randomint(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var temparray = inputarray;
for (var q = 0; q < numofloops; q++) {
var start = randomint(0, inputarray.length - chunksize);
var othertemp = temparray.splice(start, chunksize);
var index = randomint(0, temparray.length - chunksize - 1);
// https://stackoverflow.com/questions/7032550/javascript-insert-an-array-inside-another-array
@TheGreatRambler
TheGreatRambler / szudzik.js
Last active August 7, 2024 14:57
A pairing function (szudzik) that supports negative numbers
// src https://codepen.io/sachmata/post/elegant-pairing
szudzik.getindex = function(x, y) {
var xx = x >= 0 ? x * 2 : x * -2 - 1;
var yy = y >= 0 ? y * 2 : y * -2 - 1;
return (xx >= yy) ? (xx * xx + xx + yy) : (yy * yy + xx);
};
szudzik.unpair = function(z) {
var sqrtz = Math.floor(Math.sqrt(z));
@TheGreatRambler
TheGreatRambler / distancebetweentwopoints.js
Last active December 20, 2017 22:50
Simple function to get distance between two points with an added twist --- in order to prevent performance problems with squaring large numbers and getting the square root of their addition, the smallest x and y values are set as zero and the largest are set as the difference between the two points. This way, the performance is better.
function distancebetweentwopoints(x1, y1, x2, y2) {
if (x1 > x2) {
x1 = x1 - x2;
x2 = 0;
} else {
x2 = x2 - x1;
x1 = 0;
}
if (y1 > y2) {
y1 = y1 - y2;