Basic algorithm scripting solutions [Freecodecamp]
FreeCodeCamp.com is one of the gems on the internet in my opinion. You can start your career as a developer absolutely free with the courses you can find there. The project is open source and this means you can contribute if you are an experienced developer. Today I finished the ‘Basic Algorithm Scripting’ section and even if I work as a developer for years it took me more than I thought. Well this is an alert that by using often tools like lodash.js / underscore.js will make my brain lazy 😛 Below are my solutions, you can write your thoughts in comments section.
Reverse a String
function reverseString(str) {
return str.split('').reverse().join('');
}
Factorialize a Number
function factorialize(num) {
if (num <= 1) {
return 1;
} else {
return num * factorialize(num - 1);
}
}
Check for Palindromes
function palindrome(str) {
var c = str.toLowerCase();
c = c.replace(/[^A-Za-z0-9]/g, '');
var revc = c.split('').reverse().join('');
return c == revc;
}
Find the Longest Word in a String
function findLongestWord(str) {
var longest = '';
str.split(' ').forEach(function(acc) {
if (acc.length > longest.length) {
longest = acc;
}
});
return longest.length;
}
Title Case a Sentence
function titleCase(str) {
return str.split(' ').map(function(acc) {
return acc.toLowerCase().charAt(0).toUpperCase() + acc.toLowerCase().slice(1);
}).join(' ');
}
Return Largest Numbers in Arrays
function largestOfFour(arr) {
return arr.map(function(arrayN) {
return arrayN.reduce(function(fNum, nNum) {
return fNum < nNum ? nNum : fNum;
});
});
}
Confirm the Ending
function confirmEnding(str, target) {
return str.substr(-target.length) === target;
}
Repeat a string
function repeatStringNumTimes(str, num) {
for (var k = '', i = 0; i < num; i++) {
k += str;
}
return k;
}
Truncate a string
function truncateString(str, num) {
if (num > 3 && num < str.length) {
return str.slice(0, num - 3) + '...';
} else if (num >= str.length) {
return str;
} else {
return str.slice(0, num) + '...';
}
}
Chunky Monkey
function chunkArrayInGroups(arr, size) {
var tempArr = [],
i = 0;
while (i < arr.length) {
tempArr.push(arr.slice(i, i += size));
}
return tempArr;
}
Slasher Flick
function slasher(arr, howMany) {
arr.splice(0, howMany);
return arr;
}
Mutations
function mutation(arr) {
var tempVal = true;
for (var i = 0; i < arr[1].length; i++) {
if (arr[0].toLowerCase().indexOf(arr[1][i].toLowerCase()) == -1) {
tempVal = false;
}
}
return tempVal;
}
Falsy Bouncer
function bouncer(arr) {
return arr.filter(function(arrElem) {
return !!arrElem;
});
}
Seek and Destroy
function destroyer(arr) {
var eleArgs = [];
for (var i = 1; i < arguments.length; i++) {
eleArgs.push(arguments[i]);
}
return arr.filter(function(arrNum) {
return eleArgs.indexOf(arrNum) === -1;
});
}
Where do I belong
function getIndexToIns(arr, num) {
arr.push(num);
arr.sort(function compare(a, b) {
return a - b;
});
return arr.indexOf(num);
}
Caesars Cipher
function rot13(str) {
var encoded = '';
for (var i = 0; i < str.length; i++) {
if (str[i].charCodeAt(0) >= 65 && str[i].charCodeAt(0) < 78) {
encoded += String.fromCharCode(str[i].charCodeAt(0) + 13);
} else if (str[i].charCodeAt(0) >= 78 && str[i].charCodeAt(0) <= 90) {
encoded += String.fromCharCode(str[i].charCodeAt(0) - 13);
} else {
encoded += str[i];
}
}
return encoded;
}
Or you can get them from this repository

