Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. Here are my solutions to the FCC Basic JavaScript Algorithms. Happy to report all algorithms can be
  2. written in one (albeit sometimes long) line.
  3. //================================================================================================//
  4. Reverse a String:
  5.  
  6. const reverseString = (str) => str.split('').reverse().join('');
  7. //================================================================================================//
  8. Factorialize a Number
  9.  
  10. const factorialize = (num) => num > 1 ? num * factorialize(num-1) : 1;
  11. //================================================================================================//
  12. Check for Palindromes
  13.  
  14. const palindrome = (str) => str.replace(/\W|_/g, "").toLowerCase() == str.replace(/\W|_/g, "").toLowerCase().split("").reverse().join("");
  15.  
  16. better:
  17. function palindrome(str) {
  18. let cleanStr = str.replace(/\W|_/g, "").toLowerCase();
  19. return cleanStr === cleanStr.split("").reverse().join("");
  20. }
  21. //================================================================================================//
  22. Find the Longest Word in a String
  23.  
  24. const findLongestWord = (str) => Math.max(...str.split(" ").map(a => a.length));
  25. const findLongestWord = (str) => str.split(' ').reduce((a,b)=> b.length > a ? b.length : a, 0);
  26. //================================================================================================//
  27. Title Case a Sentence
  28.  
  29. const titleCase = (str) => str.split(' ').map(v => v[0].toUpperCase() + v.slice(1).toLowerCase()).join(' ');
  30. //================================================================================================//
  31. Return Largest Numbers in an Array
  32.  
  33. const largestOfFour = (a) => a.map(b => Math.max(...b));
  34. //================================================================================================//
  35. Confirm the Ending
  36.  
  37. const confirmEnding = (str, target) => str.slice(-target.length) == target;
  38. //================================================================================================//
  39. Repeat a string repeat a string
  40.  
  41. const repeatStringNumTimes = (str, num) => num > 0 ? str.repeat(num) : "";
  42. //================================================================================================//
  43. Truncate a string
  44.  
  45. //quick and dirty:
  46. const truncateString = (str, num) => num >= str.length ? str : num<=3 ? str.slice(0,num)+"..." : str.slice(0, num-3) + "...";
  47.  
  48. //longer and easier to read:
  49. function truncateString(str, num) {
  50. if (num >= str.length){
  51. return str;
  52. } else if (num <= 3){
  53. return str.slice(0, num) + "...";
  54. } else {
  55. return str.slice(0,num-3) + "...";
  56. }
  57. }
  58. //================================================================================================//
  59. Chunky Monkey
  60.  
  61. clever:
  62. const chunkArrayInGroups = (arr, size) => arr.reduce((a,b,i,arr) => i%size == 0 ? a.concat([arr.slice(i,i+size)]) : a, []);
  63.  
  64. classic:
  65. function chunkArrayInGroups(arr, size) {
  66. var result = [];
  67. for (var i=0; i<arr.length; i+=size){
  68. result.push(arr.slice(i, i+size));
  69. }
  70. return result;
  71. }
  72. //================================================================================================//
  73. Slasher Flick
  74.  
  75. const slasher = (arr, howMany) => arr.slice(howMany);
  76. //================================================================================================//
  77. Mutations
  78.  
  79. const mutation = (arr) => arr[1].toLowerCase().split('').every(v => arr[0].toLowerCase().includes(v));
  80. //================================================================================================//
  81. Falsy Bouncer
  82.  
  83. const bouncer = (arr) => arr.filter(Boolean);
  84. const bouncer = (arr) => arr.filter(v => v);
  85. //================================================================================================//
  86. Seek and Destroy
  87.  
  88. const destroyer = (arr,...args) => arr.filter(n => args.includes(n));
  89. //================================================================================================//
  90. Where do I belong?
  91.  
  92. const getIndexToIns = (arr, num) => arr.filter(a => a < num).length;
  93. //================================================================================================//
  94. Caesars Cipher
  95.  
  96. const rot13 = (str) => str.replace(/[A-Z]/g, l => String.fromCharCode(l.charCodeAt()%26 + 65));
  97. function rot13(str) {
  98. return str.split('').map(l => {
  99. let i = l.charCodeAt(0);
  100. return (i < 65 || i > 90) ? l : String.fromCharCode(i%26+65);
  101. }).join('');
  102. }
  103. //================================================================================================//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement