Solutions and explanation to JS exercises.
This is not a cheat sheet!
I made this compilation while solving JavaScript algorithms in FreeCodeCamp and Edabit. I thought this must be a helpful guide for people trying to get up and running in web development paradigm.
- Find the Smallest number in an Array
- Sort Strings Alphabetically
- Factorialize a Number
- Indentify if a Number is Odd or Even
- Eliminating the Odds
- Numbers only
- Add all the numbers
- Min, Max, Length and Average
- Sort in Ascending Order
- Number to Roman Numerals (from FreeCodeCamp)
- Absolutely Sum
- Triangle Loop (from Eloquent JavaScript)
- Words Count
- Multiply by Length
- Ends with xxx
- Repeating Letters
- Index Location
- Do ... while loop
- License
Create a function that will display the smallest value in the array.
Example:
> console.log(findSmallest([30, 45, 60, 7]));
> 1
Reference:
Solution:
function findSmallest(arr) {
return Math.min(...arr);
}
Function that will return your string in Alphabetical order
Example:
> console.log(AlphabeticalOrder('hello'));
> "ehllo"
Reference:
Solution:
function AlphabeticalOrder(str) {
return str
.split("")
.sort()
.join("");
}
In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. In simple terms, the Factorial of 7 is solved like this:
7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 5,040
Example:
> console.log(factorializer(7));
> 5040
Reference:
Solution:
function factorializer(int) {
if (int <= 1) {
return 1;
} else {
return int * factorializer(int - 1);
}
}
A function that lets you know if a number is Even or Odd
Example:
> console.log(oddOrEven(7));
> "Odd"
Reference:
Solution:
function oddOrEven(int) {
let ouput = int % 2;
if (output == 0) {
return "Even";
} else {
return "Odd";
}
}
Remove all Odd number(s) in an array and return a new array that contains Even numbers only
Example:
> console.log(evenOnly([1, 2, 3, 4, 5, 6]));
> [ 2, 4, 6 ]
Reference:
Solution:
function evenOnly(arr) {
let result = arr.filter(arr => arr % 2 == 0);
return result;
}
Create a function that will accept an array, check the data type of each element. The function will delete string elements and will return a the new array
Example:
> console.log(numbersOnly(['text', 3, 7, 'github', 13, 'dev']));
> [ 3, 7, 13 ]
Reference:
Solution:
function numbersOnly(arr) {
return arr.filter(arr => typeof arr == "number");
}
Return the sum of a number going back to it's root. In other words, the function will work like this:
addUp(5);
// 5 + 4 + 3 + 2 + 1 + 0 = 15
Example:
> console.log(addUp(8));
> 36
Reference:
Solution:
function addUp(num) {
if (num <= 1) {
return num;
} else {
return num + addUp(num - 1);
}
}
Create a function that will accept an array and do the following:
-
Get the lowest element
-
Get the highest element
-
Get the length of array
-
Get the Average of all element;
-
Store these criteria in a new array
Example:
> console.log(minMaxLengthAverage([7, 13, 3, 77, 100]));
> [ 3, 100, 5, 40 ]
Reference:
Solution:
function minMaxLengthAverage(arr) {
const min = Math.min(...arr);
const max = Math.max(...arr);
const len = arr.length;
//Reducer for get Average function
const ave = arr => arr.reduce((acc, curVal) => acc + curVal, 0) / len;
const average = ave(arr);
//Return output
return [min, max, len, average];
}
Array.sort()
sorts the strings alphabetically. What if we want to sort numbers from lowest to highest? Will it produce a correct output?
Example:
This is what happen if we apply Array.sort()
to numbers:
> arr = [45, 34, 23, 12, 7]
> console.log(arr.sort());
> [ 12, 23, 34, 45, 7 ]
Output is not correct right?, whereas we are expecting this to be the return value:
> console.log(sortNumsAscending([7, 13, 3, 77, 100]));
> [ 3, 5, 40, 100 ]
Reference:
Solution:
function sortNumsAscending(arr) {
let sorter = (a, b) => {
return a - b;
};
if (arr == []) {
return [];
} else if (arr == null) {
return [];
} else {
return arr.sort(sorter);
}
}
Convert the given number to a Roman Numeral
Example:
> romanNumbers(1989);
> MCMLXXXIX
Reference:
Solution:
function romanNumbers(num) {
let values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
let romanNumerals = [
"M",
"CM",
"D",
"CD",
"C",
"XC",
"L",
"XL",
"X",
"IX",
"V",
"IV",
"I"
];
let roman = "";
for (i = 0; i < values.length; i++) {
while (values[i] <= num) {
roman += romanNumerals[i];
num -= values[i];
}
}
return roman;
}
console.log(romanNumbers(1989));
Return the absolute sum of all the array elements
Example:
> getAbsSum([-1, -3, -5, -4, -10, 0]);
> 23
Reference:
Solution:
function getAbsSum(arr) {
const reducer = (acc, currVal) => {
return acc + currVal;
};
return Math.abs(arr.reduce(reducer));
}
Form a triangle using hash tags
Example:
> #
> ##
> ###
> ####
> #####
> ######
> #######
Reference:
Solution:
for (x = "#"; x.length <= 7; x += x) {
console.log(x);
}
Return how many words was given
Example:
> countWords('hello from kbpsystem!');
> 3
Reference:
Solution:
function countWords(str) {
return str.split(" ").length;
}
Multiply all elements in an array by it's length
Example:
> MultiplyByLength([4,1,1]);
> [12, 3, 3]
Reference:
Solution:
function MultiplyByLength(arr) {
let len = arr.length;
for (i = 0; i < len; i++) {
arr[i] = arr[i] * len;
}
return arr;
}
Create a function that will check if str1 ends with the characters in str2
Rules:
-
Take two strings as argument
-
Determine if second string matches ending of the first string
-
Return boolean value
Example:
> console.log(checkEnding("samurai", "zi"));
> false
Reference:
-
String.prototype.endsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.
-
Array.prototype.join method joins all elements of an array (or an array-like object) into a string and returns this string.
Solution:
function checkEnding(str1, str2) {
return str1.endsWith(str2);
}
Create a function that will repeat each string character two times
Example:
> console.log(doubleChar('exercise'));
> eexxeerrcciissee
Reference:
-
Array.prototype.split The
split()
method splits a String object into an array of strings by separating the string into substrings, using a specified separator string to determine where to make each split. -
Array.prototype.map The
map()
method creates a new array with the results of calling a provided function on every element in the calling array. -
Array.prototype.join This method joins all elements of an array (or an array-like object) into a string and returns this string.
Solution:
function doubleChar(str) {
let x = str.split("");
return x.map(x => x.repeat(2)).join("");
}
Explanation:
On the solution above, first we apply split method on the string argument and then store it in a variable called x
.
Next, we use the map function in order to performa duplication process on each element of the string, which was considered as array on this case because we just applied a split method on the string. Once duplication process is done, we call the join()
method. Applying this method will convert the array back to being a string again but this time with a new duplicated values
Return the index location of an element from a given array. First argument is the array you'd like to search and the second one is the element (either string/number) to look for.
Example:
> console.log(findIndex(['github', 'gitlab', 'bitbucket', 'apollo'], 'gitlab'));
> 1
Reference:
- Array.Prototype.indexOf() The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present. Note that this method is not widely supported in all browsers so a Polyfill is needed.
Solution:
function findIndex(arr, element) {
return arr.indexOf(element);
}
Explanation:
findIndex
function takes two arguments. First is the array to be monitored and then the last is the element on the array that needs to be located.
JavaScript has a built in method called indexOf()
and we used that in order to locate the index location of a certain element in an array. This method loops through the array locating the index value of an element
This exercise is courtesy of FreeCodeCamp
This exercise is an implementation of do while statement. Our goal here is to keep on running a function/statement, set a paramater and as soon as the result of the parameter evaluates to false
, the function/statement execution will stop
Example:
var result = "";
var i = 0;
do {
i = i + 1;
result = result + i;
} while (i < 5);
console.log(result);
// expected result: "12345"
Reference:
- do while Definition from our friend in Mozilla:
The do...while statement creates a loop that executes a specified statement until the test condition evaluates to false. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.
Solution:
// Setup
> var myArray = [];
> var i = 10;
> // Only change code below this line.
> do {
myArray.push(i);
i++;
console.log(i)
} while (i < 11)
We're on CodeTriage!
Please feel free to submit an Issue or Pull Requests