Skip to content

Instantly share code, notes, and snippets.

@joefearnley
joefearnley / maxMultiple.js
Created July 4, 2020 13:37
The 10-Day JS Challenge - Day 10: Max Multiple
const maxMultiple = (divisor, bound) => {
let result = divisor;
for (let i = divisor; i <= bound; i *= divisor) {
result = i;
}
return result;
}
@joefearnley
joefearnley / largestNumber.js
Created July 3, 2020 12:19
The 10-Day JS Challenge - Day 9: Case Insensitive Palindrome
const largestNumber = num => {
result = '';
for(let i = 1; i <= num; i++) {
result += '9';
}
return parseInt(result);
};
@joefearnley
joefearnley / firstDigit.js
Created July 2, 2020 13:08
The 10-Day JS Challenge - Day 8: First Digit
const firstDigit = str => str.split('').filter(s =>!isNaN(s))[0];
describe('firstDigit()', () => {
it('return the first digit in a string', () => {
// arrange
const str = "var_1__Int2";
// act
const result = firstDigit(str);
@joefearnley
joefearnley / factorialNumber.js
Created July 1, 2020 13:21
The 10-Day JavaScript Challenge - Day 7: Factorial Number
// basic with for loop
const factorialNumber = num => {
let result = 1;
for(let i = result + 1; i <= num; i++) {
result *= i;
}
return result;
};
@joefearnley
joefearnley / encloseInBrackets.js
Created June 30, 2020 14:11
The 10-Day JS Challenge - Day 6: Enclose in Brackets
const encloseInBrackets = str => `(${str})`;
describe('encloseInBrackets()', () => {
it('adds () around a string', () => {
// arrange
const str = "Yo";
// act
const result = encloseInBrackets(str);
@joefearnley
joefearnley / caseInsensitivePalindrome.js
Created June 29, 2020 14:10
The 10-Day JS Challenge - Day 5: Case Insensitive Palindrome
const caseInsensitivePalindrome = str => str.toLowerCase() === str.split('').reverse().join('').toLowerCase();
describe('caseInsensitivePalindrome()', () => {
it('returns true for a case insensitive palindrome', () => {
// arrange
const str = 'AaBaa';
// act
const result = caseInsensitivePalindrome(str);
@joefearnley
joefearnley / arrayReplace.js
Last active June 28, 2020 14:05
10 day JS challenge - Day: 4: Array Replace
const arrayReplace = (array, elemToReplace, substitutionElem) => array.map((el, i) => el === elemToReplace ? substitutionElem : el);
describe('arrayReplace()', () => {
it('adds a border around entire application', () => {
// arrange
const array = [1, 2, 1];
const elemToReplace = 1;
const substitutionElem = 3;
// act
@joefearnley
joefearnley / AlternatingSums.js
Last active June 27, 2020 14:24
10 day JS challenge - Day 3: Alternating Sums
const alternatingSums = weights => [
weights.filter((weight, i) => i % 2 === 0).reduce((a, c) => a + c),
weights.filter((weight, i) => i % 2 !== 0).reduce((a, c) => a + c)
];
describe('alternatingSums()', () => {
it('returns alternating sums of even and odd', () => {
// arrange
const nums = [50, 60, 60, 45, 70];
@joefearnley
joefearnley / allLongestStrings.js
Last active June 28, 2020 13:58
10 day JS challenge - Day 2: All the longest strings
const allLongestStrings = array => {
let longestLength = array[0].length;
array.forEach(s => {
longestLength = s.length > longestLength ? s.length : longestLength;
});
return array.filter(s => s.length === longestLength);
}
/**
@joefearnley
joefearnley / add.js
Last active June 28, 2020 13:59
10 day JS challenge - Day 1: Add
const add = (...nums) => nums.reduce((a, c) => a + c);
describe('add()', () => {
it('adds two numbers', () => {
// arrange
const num1 = 1;
const num2 = 2;
// act
const result = add(num1, num2);