176 lines
3.3 KiB
Markdown
176 lines
3.3 KiB
Markdown
![]() |
---
|
|||
|
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;
|
|||
|
}
|
|||
|
```
|