--- title: General FizzBuzz id: 5a23c84252665b21eecc7e78 challengeType: 5 forumTopicId: 302273 --- ## Description
Write a generalized version of FizzBuzz that works for any list of factors, along with their words. This is basically a "fizzbuzz" implementation where the rules of the game are supplied to the user. Create a function to implement this. The function should take two parameters. The first will be an array with the FizzBuzz rules. For example: [ [3, "Fizz"] , [5, "Buzz"] ]. This indicates that Fizz should be printed if the number is a multiple of 3 and Buzz if it is a multiple of 5. If it is a multiple of both then the strings should be concatenated in the order specified in the array. In this case, FizzBuzz if the number is a multiple of 3 and 5. The second parameter is the number for which the function should return a string as stated above.
## Instructions
## Tests
```yml tests: - text: genFizzBuzz should be a function. testString: assert(typeof genFizzBuzz=='function'); - text: genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) should return a string. testString: assert(typeof genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)=='string'); - text: genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) should return "Fizz". testString: assert.equal(genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6), "Fizz"); - text: genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10) should return "Buzz". testString: assert.equal(genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10), "Buzz"); - text: genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12) should return "Buzz". testString: assert.equal(genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12), "Buzz"); - text: genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13) should return "13". testString: assert.equal(genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13), '13'); - text: genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15) should return "BuzzFizz". testString: assert.equal(genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15), "BuzzFizz"); - text: genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15) should return "FizzBuzz". testString: assert.equal(genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15), "FizzBuzz"); - text: genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105) should return "FizzBuzzBaxx". testString: assert.equal(genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105), "FizzBuzzBaxx"); ```
## Challenge Seed
```js function genFizzBuzz(rules, num) { // Good luck! } ```
## Solution
```js function genFizzBuzz(rules, num) { let res=''; rules.forEach(function (e) { if(num % e[0] == 0) res+=e[1]; }) if(res==''){ res=num.toString(); } return res; } ```