This file contains hidden or 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
//let rubyInfluenceJavaScript | |
Number.prototype.times = function(f){for(a=-1;++a<this;){f(a)}return+this}; | |
Number.prototype.upto = function(a,f){b=this;if(a<b){return+b}for(;b<=a;){f(b++)}return+b}; | |
Number.prototype.downto = function(a,f){b=this;if(a>b){return+b}for(;b>=a;){f(b--)}return+b}; | |
Number.prototype.to = function(a,f){a>this?this.upto(a, f):this.downto(a, f)}; | |
Number.prototype.toS = function(){return ""+this}; | |
String.prototype.toI = function(){return parseInt(this)}; | |
String.prototype.toF = function(){return parseFloat(this)}; | |
// ruby-inspired looping |
This file contains hidden or 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
function BinaryTree () {} (function () { | |
BinaryTree.prototype = { | |
// Container for the object's binary tree | |
tree: null, | |
// Temporary container when constructing a sorted array | |
_temp: [], | |
// Insert a new node into the binary tree |
This file contains hidden or 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
function BinaryTree () {} (function () { | |
BinaryTree.prototype = { | |
// Container for the object's binary tree | |
tree: null, | |
count: 0, | |
_isBalancing: false, |
This file contains hidden or 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
function BinaryTree () {} (function () { | |
BinaryTree.prototype = { | |
// Container for the object's binary tree | |
tree: null, | |
count: 0, | |
_isBalancing: false, |
This file contains hidden or 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
function randomArray() { | |
for (var a=[], i=0; ++i < 19;) a.push(~~(Math.random() * 100)); | |
return a; | |
} | |
function quicksort(a) { | |
var l = [], r = [], m; | |
if(!a.length) return []; |
This file contains hidden or 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
function(array, value) { | |
var j = 0, length = array.length; | |
// A for loop was used to save space. More easily understood as a while loop. Exits if our pointer moves out of range. | |
while (j < length) { | |
var i = (length + j - 1) >> 1; // move the pointer to the median value using a shift in place of Math.floor() (to save characters) | |
// If the value we're searching for is greater than the median, move our lower-bound past the median | |
if (value > a[i]) | |
j = i + 1; | |
// Otherwise, if the value we're searching for is less than the median, move our upper-bound to the median value | |
else if (value < array[i]) |
This file contains hidden or 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
var insertionSort = function (a) { | |
// Iterate through our array | |
for (var i = 1, value; i < a.length; i++) { | |
// Our array is split into two parts: values preceeding i are sorted, while others are unsorted | |
// Store the unsorted value at i | |
value = a[i]; | |
// Interate backwards through the unsorted values until we find the correct location for our `next` value | |
for (var j = i; a[j-1] > value; j--) { | |
// Shift the value to the right | |
a[j] = a[j-1]; |
This file contains hidden or 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
var selectionSort = function (a) { | |
// Move forward through an array, swapping the value at i with the smallest value after i | |
for (var i = -1; ++i < a.length;) { | |
// Move forward from i and remember the position of the smallest value | |
for (var m = j = i; ++j < a.length;) { | |
// If the value at j is smaller than our current minimum, remember it's position | |
if (a[m] > a[j]) m = j; | |
} | |
// Swap the value at i with the minimum value following i |
This file contains hidden or 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
function SecretMethods () {} (function () { | |
var add = function (a,b) { | |
return a + b; | |
} | |
var mul = function (a,b) { | |
return a * b; | |
} | |
This file contains hidden or 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
/** | |
* Generates a random hex string | |
*/ | |
function s4() { | |
return Math.floor((1 + Math.random()) * 0x10000) | |
.toString(16) | |
.substring(1); | |
} | |
/** |
OlderNewer