Skip to content

Instantly share code, notes, and snippets.

View cplpearce's full-sized avatar
🙃
Riding the programming emotional roller coaster

lorem ipsum cplpearce

🙃
Riding the programming emotional roller coaster
View GitHub Profile
@cplpearce
cplpearce / kata10TalkingCalendar.js
Created August 9, 2020 02:35
Kata 10 - Talking Calendar
const talkingCalendar = function(date) {
const dateArray = date.split('/');
const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let friendlyDate = {day : 0, month : '', year : 0};
friendlyDate.day = +dateArray[2] + (+dateArray[2] === 1 ? 'st' : (+dateArray[2] === 2 ? 'nd' : +dateArray[2] === 3 ? 'rd' : 'th'));
friendlyDate.month = months[(+dateArray[1]) - 1];
friendlyDate.year = dateArray[0];
@cplpearce
cplpearce / kata10TheGreatCodevilleBakeOff.js
Created August 9, 2020 01:45
Kata 10 - The Great Codeville Bake-off
const chooseRecipe = function(bakeryA, bakeryB, recipes) {
let applicableRecipies = '';
for (let recipe of recipes) {
let boolBakeryA = false;
let boolBakeryB = false;
for (let ingredient of recipe.ingredients) {
bakeryA.includes(ingredient) && (boolBakeryA = true);
bakeryB.includes(ingredient) && (boolBakeryB = true);
}
(boolBakeryA && boolBakeryB) && (applicableRecipies += recipe.name);
@cplpearce
cplpearce / kata9BouncyCastles.js
Created August 9, 2020 00:21
Kata 9 - Bouncy Castles
// Use the value below whenever you need the value of Pi
const PI = 3.14159 ;
const sphereVolume = function (radius) {
// V = 4/3 πr³
return ((4/3) * (PI * Math.pow(radius, 3)));
}
console.log(4186 < sphereVolume(10) && sphereVolume(10) < 4189);
@cplpearce
cplpearce / kata8MultiplicationTable.js
Created August 8, 2020 23:48
Kata 8 - Multiplication Table
const multiplicationTable = function(maxValue) {
let numArray = [];
for (i = 1; i <= maxValue; i++) {
let rowArray = [];
for (j = 1; j <= maxValue; j++) {
rowArray.push(i * j);
}
numArray.push(rowArray);
}
let returnString = '';
@cplpearce
cplpearce / kata7CaseMaker.js
Created August 8, 2020 15:17
Kata 7 - Case Maker
const camelCase = function(input) {
let tempString = "";
let capitalize = false;
for (let char of input) {
if (char === " ") {
capitalize = true;
continue;
} else if (capitalize === true) {
tempString += char.toUpperCase();
capitalize = false;
@cplpearce
cplpearce / kata6RepeatingNumbers.js
Created August 8, 2020 14:59
Kata 6 - Repeating Numbers
const repeatNumbers = function(data) {
const strRepeater = [];
for (let pair of data) {
let tempStr = '';
tempNum = pair[0].toString();
for (let i = 0; i < pair[1]; i++) {
tempStr += tempNum;
}
strRepeater.push(tempStr);
}
@cplpearce
cplpearce / kata1SumTheLargestNumbers.js
Last active March 1, 2024 17:31
Kata 1 - Sum the Largest Numbers
const sumLargestNumbers = function(data) {
let numOne = {index : 0, value : 0};
let numTwo = 0;
for (let [i, num] of data.entries()) {
num > numOne.value && (numOne.index = i) && (numOne.value = num);
}
data.splice(numOne.index, 1);
for (let num of data) {
num > numTwo && (numTwo = num);
}
@cplpearce
cplpearce / kata7InTheAirTonight.js
Created August 8, 2020 04:10
Kata 7 - In the Air Tonight
const checkAir = function (samples, threshold) {
let countDirty = 0;
for (let quality of samples) {
quality === "dirty" ? countDirty++ : null;
}
let ratio = countDirty / samples.length;
return (ratio > threshold ? "Polluted" : "Clean");
};
console.log(checkAir(
@cplpearce
cplpearce / kata6SmartParking.js
Last active March 1, 2024 17:31
Kata 6 - SmartParking
const whereCanIPark = function (spots, vehicle) {
let coords = null;
let veh = [];
if (vehicle === "regular") {
veh = ["R"];
} else if (vehicle === "small") {
veh = ["R", "S"];
} else if (vehicle === "motorcycle") {
veh = ["R", "S", "M"];
} else {
@cplpearce
cplpearce / kata5PercentEncodedString.js
Created August 8, 2020 02:54
Kata 5 - Percent Encoded String
const urlEncode = function(text) {
let newURL = "";
for (let c = 0; c < text.length; c++) {
text[c] === " " ? (c === 0 || c === text.length - 1) ? null : newURL += "%20" : newURL += text[c]
}
return newURL;
};
console.log(urlEncode("Lighthouse Labs"));
console.log(urlEncode(" Lighthouse Labs "));