2021-06-15 07:49:18 +00:00
---
id: 5a23c84252665b21eecc7e78
2021-08-09 08:35:35 +00:00
title: FizzBuzz geral
2021-06-15 07:49:18 +00:00
challengeType: 5
forumTopicId: 302273
dashedName: general-fizzbuzz
---
# --description--
2021-08-09 08:35:35 +00:00
Escreva uma versão generalizada do algoritmo [FizzBuzz ](https://rosettacode.org/wiki/FizzBuzz ), que funcione para qualquer lista de fatores, juntamente com suas palavras.
2021-06-15 07:49:18 +00:00
2021-08-09 08:35:35 +00:00
Esta é basicamente uma implementação de "fizzbuzz" onde as regras do jogo são fornecidas ao utilizador. Crie uma função para implementar isso. A função deve receber dois parâmetros.
2021-06-15 07:49:18 +00:00
2021-08-09 08:35:35 +00:00
O primeiro será um array com as regras para FizzBuzz. Por exemplo: `[ [3, "Fizz"] , [5, "Buzz"] ]` .
2021-06-15 07:49:18 +00:00
2021-08-09 08:35:35 +00:00
Isso indica que `Fizz` deve ser impresso se o número for múltiplo de 3 e `Buzz` deve ser impresso se for múltiplo de 5. Se for um múltiplo de ambos, as strings devem ser concatenadas na ordem especificada no array. Neste caso, `FizzBuzz` se o número for um múltiplo de 3 e 5.
2021-06-15 07:49:18 +00:00
2021-08-09 08:35:35 +00:00
O segundo parâmetro é o número para o qual a função deve retornar uma string, conforme indicado acima.
2021-06-15 07:49:18 +00:00
# --hints--
2021-08-09 08:35:35 +00:00
`genFizzBuzz` deve ser uma função.
2021-06-15 07:49:18 +00:00
```js
assert(typeof genFizzBuzz == 'function');
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)` deve retornar uma string.
2021-06-15 07:49:18 +00:00
```js
assert(
typeof genFizzBuzz(
[
[3, 'Fizz'],
[5, 'Buzz']
],
6
) == 'string'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)` deve retornar `"Fizz"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Fizz'],
[5, 'Buzz']
],
6
),
'Fizz'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10)` deve retornar `"Buzz"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Fizz'],
[5, 'Buzz']
],
10
),
'Buzz'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12)` deve retornar `"Buzz"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Buzz'],
[5, 'Fizz']
],
12
),
'Buzz'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13)` deve retornar `"13"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Buzz'],
[5, 'Fizz']
],
13
),
'13'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15)` deve retornar `"BuzzFizz"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Buzz'],
[5, 'Fizz']
],
15
),
'BuzzFizz'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15)` deve retornar `"FizzBuzz"` .
2021-06-15 07:49:18 +00:00
```js
assert.equal(
genFizzBuzz(
[
[3, 'Fizz'],
[5, 'Buzz']
],
15
),
'FizzBuzz'
);
```
2021-08-09 08:35:35 +00:00
`genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105)` deve retornar `"FizzBuzzBaxx"` .
2021-06-15 07:49:18 +00:00
```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;
}
```