Skip to content

Instantly share code, notes, and snippets.

View nickihastings's full-sized avatar
🏠
Working from home

Nicki Hastings nickihastings

🏠
Working from home
View GitHub Profile
@nickihastings
nickihastings / movie-quotes.js
Created February 1, 2018 21:31
ajax code used to import a JSON API for random quote machine
$(document).ready(function(){
//get the quote api information with Ajax
getQuote();
function getQuote(){
$.ajax({
url: "https://andruxnet-random-famous-quotes.p.mashape.com/?cat=movies&count=1",
type: "GET",
data: {},
dataType: "json",
beforeSend: function(xhr) {
@nickihastings
nickihastings / geolocate.js
Created February 6, 2018 22:06
Javascript function to get the latitude and longitude gelocation info from the browser.
$(document).ready(function(){
var latitude = '';
var longitude = '';
navigator.geolocation.getCurrentPosition(function(position) {
latitude = position.coords.latitude;
longitude = position.coords.longitude;
console.log('lat=' + latitude + ' long=' + longitude);
});
});
@nickihastings
nickihastings / wherefore-art-thou.js
Created March 15, 2018 20:48
Make a function that looks through an array of objects (first argument) and returns an array of all objects that have matching property and value pairs (second argument). Each property and value pair of the source object has to be present in the object from the collection if it is to be included in the returned array. From FreeCodeCamp
function whatIsInAName(collection, source) {
// What's in a name?
var arr = [];
// Only change code below this line
var sKeyVal = [];
sKeyVal.push( Object.keys(source) ); //find the keys in the source
sKeyVal.push( Object.values(source) ); //find the values in source
var match = 0;
@nickihastings
nickihastings / dna-pairs.js
Created March 20, 2018 19:35
The DNA strand is missing the pairing element. Take each character, get its pair, and return the results as a 2d array. Base pairs are a pair of AT and CG. Match the missing element to the provided character. Return the provided character as the first element in each array. For example, for the input GCG, return [["G", "C"], ["C","G"],["G", "C"]…
function pairElement(str) {
str = str.split("");
var pairs = [];
for(var i = 0; i < str.length; i++){
switch (str[i]) {
case "C":
pairs.push(["C", "G"]);
break;
case "G":
@nickihastings
nickihastings / sorted-union.js
Created March 22, 2018 20:40
Write a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays. In other words, all values present from all arrays should be included in their original order, but with no duplicates in the final array. The unique numbers should be sorted by their original order, but the final …
function uniteUnique(arr) {
var args = [];
//loop over the arguments provided and then loop over each array
//within the arguments, check if the value is already in the new
//array, if it's not, add it in.
for(var i = 0; i < arguments.length; i++){
for(var j = 0; j<arguments[i].length; j++){
if(args.indexOf(arguments[i][j]) == -1){
args.push(arguments[i][j]);
}
@nickihastings
nickihastings / convert-html-entities.js
Created March 23, 2018 18:48
Convert the characters &, <, >, " (double quote), and ' (apostrophe), in a string to their corresponding HTML entities.
function convertHTML(str) {
// &colon;&rpar;
//create an object to store the html conversions
var htmlEntities = {
'&' : '&amp;',
'<' : '&lt;',
'>' : '&gt;',
'"' : '&quot;',
"'" : '&apos;'
};
@nickihastings
nickihastings / spinal-tap-case.js
Created March 23, 2018 20:42
Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes.
function spinalCase(str) {
// "It's such a fine line between stupid, and clever."
// --David St. Hubbins
function processStr(match, offset, string){
//if the offset is not the first letter and there isn't already a hyphen,
//add a hyphen then change the letter to lowercase
if(offset !== 0 && string[offset-1] !== '-'){
return '-' + match.toLowerCase();
}
@nickihastings
nickihastings / sum-odd-fibonacci-numbers.js
Created March 25, 2018 19:09
Given a positive integer num, return the sum of all odd Fibonacci numbers that are less than or equal to num. The first two numbers in the Fibonacci sequence are 1 and 1. Every additional number in the sequence is the sum of the two previous numbers. The first six numbers of the Fibonacci sequence are 1, 1, 2, 3, 5 and 8. For example, sumFibs(10…
function sumFibs(num) {
//set up variables a counter to hold the next Fibonacci number and an
//array to hold all the Fibonacci numbers below num.
var count = 0;
var fib = [1, 1];
//loop through and keep adding Fibonacci numbers to the array until the num is reached
for(var i = 0; i<fib.length; i++){
count = fib[i] + fib[i+1];
@nickihastings
nickihastings / sum-all-primes.js
Created March 26, 2018 20:33
Sum all the prime numbers up to and including the provided number. A prime number is defined as a number greater than one and having only two divisors, one and itself. For example, 2 is a prime number because it's only divisible by one and two. The provided number may not be a prime.
function sumPrimes(num) {
var ints = [2]; //array to hold prime numbers
//function to test if a number is a prime
function isPrime(test){
for(var i = 2; i < test; i++){
if(test % i == 0){ //if there's no remainder it's not a prime
return false; //not a prime number
@nickihastings
nickihastings / smallest-common-multiple.js
Last active March 30, 2018 10:40
Find the smallest common multiple of the provided parameters that can be evenly divided by both, as well as by all sequential numbers in the range between these parameters. The range will be an array of two numbers that will not necessarily be in numerical order. e.g. for 1 and 3 - find the smallest common multiple of both 1 and 3 that is evenly…
function smallestCommons(arr) {
//sort the array ascending, so that a is always the smaller number
arr.sort(function(a,b){
return a-b;
});
//first find the GCD of the pair of numbers using the Euclidean Algorithm.
//return the GCD
function gcd(a, b){
var x = a;