2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 5a23c84252665b21eecc7e78
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: 一般的FizzBuzz
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 5
|
|
|
|
|
videoUrl: ''
|
2021-01-13 03:31:00 +01:00
|
|
|
|
dashedName: general-fizzbuzz
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
|
|
|
|
|
|
|
|
|
编写[FizzBuzz](http://rosettacode.org/wiki/FizzBuzz)的通用版本,适用于任何因子列表及其单词。这基本上是一种“fizzbuzz”实现,其中游戏规则被提供给用户。创建一个实现此功能的函数。该函数应该有两个参数。第一个是带有FizzBuzz规则的数组。例如: `[ [3,"Fizz"] , [5,"Buzz"] ]` 。此indcates该`Fizz` ,如果数量是3的倍数,并应被打印`Buzz`如果是5的倍数。如果它是两则字符串应该在阵列中指定的顺序被连结的倍数。在这种情况下,如果数字是3和5的倍数,则为`FizzBuzz` 。第二个参数是函数应返回如上所述的字符串的数字。
|
|
|
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
|
|
|
|
|
`genFizzBuzz`应该是一个功能。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(typeof genFizzBuzz == 'function');
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[0][0])+","+tests[0][1]+")`应该返回一个类型。
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
assert(
|
|
|
|
|
typeof genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Fizz'],
|
|
|
|
|
[5, 'Buzz']
|
|
|
|
|
],
|
|
|
|
|
6
|
|
|
|
|
) == 'string'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[0][0])+","+tests[0][1]+")`应返回`""+results[0]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Fizz'],
|
|
|
|
|
[5, 'Buzz']
|
|
|
|
|
],
|
|
|
|
|
6
|
|
|
|
|
),
|
|
|
|
|
'Fizz'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[1][0])+","+tests[1][1]+")`应返回`""+results[1]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Fizz'],
|
|
|
|
|
[5, 'Buzz']
|
|
|
|
|
],
|
|
|
|
|
10
|
|
|
|
|
),
|
|
|
|
|
'Buzz'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[2][0])+","+tests[2][1]+")`应返回`""+results[2]+""` 。
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Buzz'],
|
|
|
|
|
[5, 'Fizz']
|
|
|
|
|
],
|
|
|
|
|
12
|
|
|
|
|
),
|
|
|
|
|
'Buzz'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[3][0])+","+tests[3][1]+")`应返回`""+results[3]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Buzz'],
|
|
|
|
|
[5, 'Fizz']
|
|
|
|
|
],
|
|
|
|
|
13
|
|
|
|
|
),
|
|
|
|
|
'13'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[4][0])+","+tests[4][1]+")`应该返回`""+results[4]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Buzz'],
|
|
|
|
|
[5, 'Fizz']
|
|
|
|
|
],
|
|
|
|
|
15
|
|
|
|
|
),
|
|
|
|
|
'BuzzFizz'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[5][0])+","+tests[5][1]+")`应返回`""+results[5]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Fizz'],
|
|
|
|
|
[5, 'Buzz']
|
|
|
|
|
],
|
|
|
|
|
15
|
|
|
|
|
),
|
|
|
|
|
'FizzBuzz'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`genFizzBuzz("+JSON.stringify(tests[6][0])+","+tests[6][1]+")`应该返回`""+results[6]+""` 。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.equal(
|
|
|
|
|
genFizzBuzz(
|
|
|
|
|
[
|
|
|
|
|
[3, 'Fizz'],
|
|
|
|
|
[5, 'Buzz'],
|
|
|
|
|
[7, 'Baxx']
|
|
|
|
|
],
|
|
|
|
|
105
|
|
|
|
|
),
|
|
|
|
|
'FizzBuzzBaxx'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-08-13 17:24:35 +02:00
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
function genFizzBuzz(rules, num) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
```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;
|
|
|
|
|
}
|
|
|
|
|
```
|