This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
A few ways to reverse a string using JavaScript. | |
*/ | |
//Most direct solution | |
function reverse(str) { | |
return str.split('').reverse().join(''); | |
} | |
//Example using the Array.reduce helper. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Create a function that checks if a string is a palindrome. | |
*/ | |
//Most direct solution | |
function palindrome(str) { | |
return str === str.split('').reverse().join(''); | |
} | |
//Solution that uses Array.every() helper. Note, this is inefficient as you do twice the work. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Reverse a number. | |
*/ | |
function reverseInt(num) { | |
//Convert the num to a string, reverse the chars. | |
const reversedStr = num.toString().split('').reverse().join(''); | |
//Convert back to an int, restore the sign (+ or -), return result as number. | |
return parseInt(reversedStr) * Math.sign(num); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Given a string, find the character that has the highest frequency. | |
*/ | |
function maxChar(str) { | |
//Step 1: Create a data store. | |
let ds = {}; | |
//Step 2: Populate it. | |
for (let char of str) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Create a function that console logs the numbers from 1 to n. | |
- Print "fizz" for multiples of three instead of the number. | |
- Print "buzz" for multiples of five instead of the number. | |
- Print "fizzbuzz" for numbers that are multiples of three and five instead of the number. | |
- Otherwise, print the number itself. | |
*/ | |
function fizzBuzz(num) { | |
for (let i = 1; i <= num; i++) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Given an array and size, create a new array containing chunked elements with the size provided. | |
For example, given the array ['Alligator', 'Bear', 'Cat', 'Dog', 'Elephant', 'Flamingo', 'Giraffe'] and size 2, | |
return an array of arrays with 2 elements per array. | |
Result: | |
[["Alligator", "Black Bear"], ["Cat", "Dog"], ["Elephant", "Flamingo"], ["Giraffe"]] | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Check to see if two strings are anagrams, where both strings have the same characters in the same quantity. | |
Only consider characters, not spaces and punctuation. Consider the strings as case insensitive, where capital | |
letters are the same as lowercase letters. | |
*/ | |
function anagram(str1, str2) { | |
//Step 1: Create a data store for each string. | |
const charMap1 = getCharMap(str1); | |
const charMap2 = getCharMap(str2); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Create a function that accepts a string, converts the string to title case, and | |
returns the result. For title case, the first letter of each word is capitalized. | |
capitalize('hello world'); //Outputs: 'Hello World' | |
captialize('the year of the hare'); //Outputs: 'The Year Of The Hare'; | |
Pseudo code: | |
1. Split the string into array using str.split(' '); | |
2. Map over the elements in the array. Title case each word using helper function. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
A simple iterative solution to building steps. | |
Uses String.prototype.repeat which is an ES2015 feature. | |
*/ | |
function steps(n) { | |
for (let i = 1; i <= n; i++) { | |
let step = '#'.repeat(i) + ' '.repeat(n - i); | |
console.log(step); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
This function builds a pyramid using ES6 repeat function available on the String prototype. | |
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat | |
colSize: is the width of the grid in columns. Also think of it as the width of the last row in the pyramid. | |
level: This represents the width of the pyramid level at each iteration. | |
numSpaces: This represents the number of spaces to use on both sides of the pyramid. | |
spaces: This variable is used to cache the result of String#repeat(), no need to do the same work twice. | |
*/ |
OlderNewer