Skip to content

Instantly share code, notes, and snippets.

View MikeDigitize's full-sized avatar
👋
Howdy

Mike Chadwick MikeDigitize

👋
Howdy
View GitHub Profile
@MikeDigitize
MikeDigitize / gist:f3c6354b0ac8379fc19f
Last active August 29, 2015 14:15
Get the amount of days, weeks, months, years between dates with JavaScript (IE7+)
var $date = function() {
function getDaysInMonths(m, y) {
return /8|3|5|10/.test(--m) ? 30 : m == 1 ? (!(y % 4) && y % 100) || !(y % 400) ? 29 : 28 : 31;
}
function isLeapYear(y) {
return getDaysInMonths(2, y) === 29;
}
export function scrollToElement(scrollAmount = 20) {
let findPos = (el, elPos = 0) => {
if (el.offsetParent) {
do {
elPos += el.offsetTop;
} while (el = el.offsetParent);
}
return elPos;
};
<button id="btn">Click Me</button>
<select>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
<button id="select">Select</button>
@MikeDigitize
MikeDigitize / Sum calculator
Created January 3, 2016 19:58
Some coding challenges for the AO front end team who are learning JavaScript
// write a function that returns the sum of two numbers
// then modify it to...
// return the sum of three numbers
// then the first argument is an array of numbers
// then the first argument may or may not be an array
// then there are an unknown amount of numbers and arrays passed in
function add(...nums) {
return nums.reduce((a,b) => a.concat(b), []).reduce((a,b) => a+b, 0);
}
@MikeDigitize
MikeDigitize / Write a Promise based API to wrap round setTimeout
Last active September 2, 2016 23:08
Some coding challenges for the AO front end team who are learning JavaScript
var Timer = wait => new Promise(resolve => setTimeout(resolve, wait));
Timer(2000).then(() => console.log('done'));
@MikeDigitize
MikeDigitize / Write a Jasmine like API for a global Assert function
Created January 3, 2016 20:04
Some coding challenges for the AO front end team who are learning JavaScript
// with three methods toBe, toBeExactly and toBeTypeof
function Assert(val) {
return {
toBe : function(expected) {
return val == expected;
},
toBeExactly : function(expected) {
return val === expected;
},
toBeTypeof : function(expected) {
@MikeDigitize
MikeDigitize / Write a script to draws a simple pen line freehanded across the browser window
Created January 3, 2016 20:06
Some coding challenges for the AO front end team who are learning JavaScript
/*
style:
.marker {
background-color: #5F5FFF;
width: 7px;
height: 7px;
border-radius: 50%;
position: absolute;
box-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}
@MikeDigitize
MikeDigitize / Write a function that takes a name and decides how lucky that person is
Created January 3, 2016 20:07
Some coding challenges for the AO front end team who are learning JavaScript
/*
The function should convert the name into a number (somehow?) and multiply it by the current time.
The answer should be divided by 2. If that number is even, the person is cool, otherwise they're not :(
*/
function arrayOfStringsToNum(arr) {
var alphabet = strToArray("abcdefghijklmnopqrstuvwxyz");
return arr.reduce((a, b) => a += alphabet.indexOf(b.toLowerCase()), 0);
@MikeDigitize
MikeDigitize / Format a bunch of football results
Last active January 26, 2016 07:33
Some coding challenges for the AO front end team who are learning JavaScript
// take a bunch of football results from this object
// and return an array of results summaries including teams competing, score and scorers
var results = {
"02-01-2016" : {
results : [{
teamA : {
name : "Manchester United",
goals : 2,
scorers : ["Rooney", "Martial"],
@MikeDigitize
MikeDigitize / Broken image link checker
Created January 3, 2016 20:13
Some coding challenges for the AO front end team who are learning JavaScript