Skip to content

Instantly share code, notes, and snippets.

View christopherhill's full-sized avatar

Christopher Hill christopherhill

View GitHub Profile
// calendar
class Appointment {
constructor(dateStamp, description, id) {
this.id = id;
this.date = dateStamp || new Date();
this.description = description || 'New Appointment';
}
@christopherhill
christopherhill / gist:ca8301d069a8fade953db27214a23e46
Created August 30, 2016 03:03
Reverse a string with recursion
// string reverse using recursion
var str = 'abcdefg';
function reverse(original, reversed) {
if (!reversed) {
return reverse(original, [original.charAt(original.length - 1)]);
} else {
var len = reversed.length;
reversed.push(original.charAt(original.length - len - 1));
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
}
form, input, button {
border: none;
margin: 0;
padding: 0;
}
// palindrome
var words = ['otto', 'hannah', 'schlumberger'];
var test = function(words) {
for (var i = 0; i < words.length; i++) {
var result = palindrome(words[i]);
console.log(result);
}
};
@christopherhill
christopherhill / fibonacci.js
Created December 16, 2013 04:29
Fibonacci Generator
var fibonacci = function(arrLength) {
var offset = 1;
var result = [0, 1];
for (var i = offset; i < arrLength + offset; i++) {
result.push(result[i] + result[i-1]);
}
return result;
}
@christopherhill
christopherhill / gist:7836660
Created December 7, 2013 02:44
Javascript Classic Inheritance
var Automobile = function() {
this.automobile = true;
}
var Car = function() {
this.car = true;
}
var Bus = function() {
@christopherhill
christopherhill / URLPatternParser
Last active December 30, 2015 08:09
URL Pattern Parser
// We need to write a function in JavaScript that parses all the variable parts of a
// url, and any url parameters, into a hash. The function should take two arguments:
// 1. A "url format" string, which describes the format of a url that can contain
// constant parts and variable parts (where "parts" of a url are separated with "/").
// All variable parts begin with a colon. Here is an example "url format" string:
// "/v6/:collecton/:id"
// 2. The second argument is a particular url that is guaranteed to have the format
// specified by the first argument. It may also contain url parameters. For instance,
// given the example url format string above, the second argument might be:
// "/v6/photos/3?size=large&res=high
@christopherhill
christopherhill / Sudoku Validation Class
Last active December 29, 2015 21:19
Sudoku Validation Class
var testCases = new Array();
testCases[0] = "751843926893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[1] = "751843927893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[2] = "571843926893625174642179583425316798176982345938754612364297851289531467517468239";
testCases[3] = "851743926693825174142679583425316798976182345738954612364297851289531467517468239";
testCases[4] = "223275461161885667779964198782134691447868986543883499854252274298641511551153988";
testCases[5] = "398126745471293685394287156874539162173982456973681245163759248927864531498612375";
var SudokuValidator = function() {
@christopherhill
christopherhill / Value Watcher
Created October 19, 2013 04:59
Value Watcher class for JS
function ValueWatcher(value, callback, prequel) {
var that = this;
this.value = value;
this.onBeforeSet = prequel || function(){};
this.onAfterSet = callback || function(){};
this.setValue = function(newVal) {
that.onBeforeSet(that.value, newVal);
that.value = newVal;
that.onAfterSet(newVal);
}