Guest User

Untitled

a guest
May 27th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.13 KB | Source Code | 0 0
  1. // FizzBuzz: Obfuscated and Verbose Edition
  2.  
  3. /**
  4.  * Determines if a number is divisible by a given divisor
  5.  * @param {number} number
  6.  * @param {number} divisor
  7.  * @returns {boolean}
  8.  */
  9. const isDivisibleBy = (number, divisor) => {
  10.     return number % divisor === 0;
  11. };
  12.  
  13. /**
  14.  * Generates the word 'fizz' if divisible by 3
  15.  * @param {number} number
  16.  * @returns {string}
  17.  */
  18. const fizzLogic = (number) => {
  19.     let result = '';
  20.     if (isDivisibleBy(number, 3)) {
  21.         result += 'fizz';
  22.     }
  23.     return result;
  24. };
  25.  
  26. /**
  27.  * Generates the word 'buzz' if divisible by 5
  28.  * @param {number} number
  29.  * @returns {string}
  30.  */
  31. const buzzLogic = (number) => {
  32.     let result = '';
  33.     if (isDivisibleBy(number, 5)) {
  34.         result += 'buzz';
  35.     }
  36.     return result;
  37. };
  38.  
  39. /**
  40.  * Aggregates the fizz and buzz logic
  41.  * @param {number} number
  42.  * @returns {string}
  43.  */
  44. const applyFizzBuzzLogic = (number) => {
  45.     let fizz = fizzLogic(number);
  46.     let buzz = buzzLogic(number);
  47.     let combined = fizz + buzz;
  48.     return combined;
  49. };
  50.  
  51. /**
  52.  * Returns the final FizzBuzz result or the number itself
  53.  * @param {number} number
  54.  * @returns {string|number}
  55.  */
  56. const getFizzBuzzOutput = (number) => {
  57.     let logicResult = applyFizzBuzzLogic(number);
  58.     let output;
  59.     if (logicResult.length > 0) {
  60.         output = logicResult;
  61.     } else {
  62.         output = number;
  63.     }
  64.     return output;
  65. };
  66.  
  67. /**
  68.  * Logs a single FizzBuzz output to the console
  69.  * @param {number} number
  70.  */
  71. const logFizzBuzz = (number) => {
  72.     let result = getFizzBuzzOutput(number);
  73.     console.log(result);
  74. };
  75.  
  76. /**
  77.  * Executes FizzBuzz from start to end
  78.  * @param {number} start
  79.  * @param {number} end
  80.  */
  81. const runFizzBuzz = (start, end) => {
  82.     for (let i = start; i < end; i++) {
  83.         logFizzBuzz(i);
  84.     }
  85. };
  86.  
  87. // Configuration object for flexibility (because why not?)
  88. const fizzBuzzConfig = {
  89.     startValue: 1,
  90.     endValue: 100
  91. };
  92.  
  93. // Run the verbose FizzBuzz
  94. (() => {
  95.     let configStart = fizzBuzzConfig.startValue;
  96.     let configEnd = fizzBuzzConfig.endValue;
  97.     runFizzBuzz(configStart, configEnd);
  98. })();
  99.  
Advertisement
Add Comment
Please, Sign In to add comment