--- id: 5a23c84252665b21eecc7e78 title: Спільний FizzBuzz challengeType: 5 forumTopicId: 302273 dashedName: general-fizzbuzz --- # --description-- Напишіть спрощену версію [FizzBuzz](https://rosettacode.org/wiki/FizzBuzz) яка спрацює для буль якого переліку факторів, разом з їх словами. В основному, це реалізація "fizzbuzz", де надаються правила гри користувачу. Створіть функцію для реалізації цього. Функція повинна приймати два параметри. Перший - масив із правилами FizzBuzz. До прикладу: `[ [3, "Fizz"] , [5, "Buzz"] ]`. Це вказує на те, що потрібно вивести `Fizz`, якщо число кратне 3, і `Buzz` якщо воно кратне 5. Якщо у двох випадках число кратне, тоді рядки мають бути об'єднані в порядку вказаному в масиві. У цьому випадку `FizzBuzz` виконується якщо число ділиться на 3 і 5. Другий параметр - це число, для якого функція повинна повернути рядок як зазначається вище. # --hints-- `genFizzBuzz` має бути функцією. ```js assert(typeof genFizzBuzz == 'function'); ``` `genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)` має повернути рядок. ```js assert( typeof genFizzBuzz( [ [3, 'Fizz'], [5, 'Buzz'] ], 6 ) == 'string' ); ``` `genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)` має повернути `"Fizz"`. ```js assert.equal( genFizzBuzz( [ [3, 'Fizz'], [5, 'Buzz'] ], 6 ), 'Fizz' ); ``` `genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10)` має повернути `"Buzz"`. ```js assert.equal( genFizzBuzz( [ [3, 'Fizz'], [5, 'Buzz'] ], 10 ), 'Buzz' ); ``` `genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12)` має повернути `"Buzz"`. ```js assert.equal( genFizzBuzz( [ [3, 'Buzz'], [5, 'Fizz'] ], 12 ), 'Buzz' ); ``` `genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13)` має повернути `"13"`. ```js assert.equal( genFizzBuzz( [ [3, 'Buzz'], [5, 'Fizz'] ], 13 ), '13' ); ``` `genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15)` має повернути `"BuzzFizz"`. ```js assert.equal( genFizzBuzz( [ [3, 'Buzz'], [5, 'Fizz'] ], 15 ), 'BuzzFizz' ); ``` `genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15)` має повернути `"FizzBuzz"`. ```js assert.equal( genFizzBuzz( [ [3, 'Fizz'], [5, 'Buzz'] ], 15 ), 'FizzBuzz' ); ``` `genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105)` має повернути `"FizzBuzzBaxx"`. ```js assert.equal( genFizzBuzz( [ [3, 'Fizz'], [5, 'Buzz'], [7, 'Baxx'] ], 105 ), 'FizzBuzzBaxx' ); ``` # --seed-- ## --seed-contents-- ```js function genFizzBuzz(rules, num) { } ``` # --solutions-- ```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; } ```