From b1f81c30b24b5ba9fd2e21f5252114934a35d5c8 Mon Sep 17 00:00:00 2001 From: vfonsah Date: Sun, 6 Sep 2020 23:35:05 +0100 Subject: [PATCH] calculator & palindromes projects --- calculator/calculator.js | 56 +++++++++++++++++++++++++------------- palindromes/palindromes.js | 17 ++++++++++-- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/calculator/calculator.js b/calculator/calculator.js index 2d904a8..e369e59 100644 --- a/calculator/calculator.js +++ b/calculator/calculator.js @@ -1,32 +1,50 @@ -function add () { - +function add(a, b) { + return a + b; } -function subtract () { - +function subtract(a, b) { + return a - b; } -function sum () { - +function sum(arr) { + let sum = 0; + arr.forEach((num) => { + sum += num; + }); + + return arr.length == 0 ? 0 : sum; } -function multiply () { - +function multiply(arr) { + let product = 1; + arr.forEach((num) => { + product *= num; + }); + + return arr.length == 0 ? 0 : product; } -function power() { - +function power(num, pow) { + let exponent = 1 + for (let i = 0; i < pow; i++) { + exponent *= num; + } + return exponent; } -function factorial() { - +function factorial(n) { + let facto = 1; + for (let i = 0; i < n; i++) { + facto = n * factorial(n-1); + } + return n == 0 || n == 1 ? 1 : facto; } module.exports = { - add, - subtract, - sum, - multiply, - power, - factorial -} \ No newline at end of file + add, + subtract, + sum, + multiply, + power, + factorial, +}; diff --git a/palindromes/palindromes.js b/palindromes/palindromes.js index ccfda4b..9366793 100644 --- a/palindromes/palindromes.js +++ b/palindromes/palindromes.js @@ -1,5 +1,16 @@ -const palindromes = function() { +const palindromes = function (str) { + let strippedStr = str.toLowerCase().replace( + /(~|`|!|@|#|$|%|^|&|\*|\(|\)|{|}|\[|\]|;|:|\"|'|<|,|\.|>|\?|\/|\\|\||-|_|\+| |=)/g, + "" + ); + let splitStr = strippedStr.split(""); + let reversedStr = []; -} + for (let i = splitStr.length - 1; i >= 0; i--) { + reversedStr.push(splitStr[i]); + } +// return [splitStr, reversedStr, JSON.stringify(splitStr), JSON.stringify(reversedStr)]; + return JSON.stringify(splitStr) === JSON.stringify(reversedStr) ? true : false; +}; -module.exports = palindromes +module.exports = palindromes;