Files

3.3 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5a23c84252665b21eecc7e78 Спільний FizzBuzz 5 302273 general-fizzbuzz

--description--

Напишіть спрощену версію FizzBuzz яка спрацює для буль якого переліку факторів, разом з їх словами.

В основному, це реалізація "fizzbuzz", де надаються правила гри користувачу. Створіть функцію для реалізації цього. Функція повинна приймати два параметри.

Перший - масив із правилами FizzBuzz. До прикладу: [ [3, "Fizz"] , [5, "Buzz"] ].

Це вказує на те, що потрібно вивести Fizz, якщо число кратне 3, і Buzz якщо воно кратне 5. Якщо у двох випадках число кратне, тоді рядки мають бути об'єднані в порядку вказаному в масиві. У цьому випадку FizzBuzz виконується якщо число ділиться на 3 і 5.

Другий параметр - це число, для якого функція повинна повернути рядок як зазначається вище.

--hints--

genFizzBuzz має бути функцією.

assert(typeof genFizzBuzz == 'function');

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) має повернути рядок.

assert(
  typeof genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    6
  ) == 'string'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) має повернути "Fizz".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    6
  ),
  'Fizz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10) має повернути "Buzz".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    10
  ),
  'Buzz'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12) має повернути "Buzz".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    12
  ),
  'Buzz'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13) має повернути "13".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    13
  ),
  '13'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15) має повернути "BuzzFizz".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    15
  ),
  'BuzzFizz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15) має повернути "FizzBuzz".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    15
  ),
  'FizzBuzz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105) має повернути "FizzBuzzBaxx".

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz'],
      [7, 'Baxx']
    ],
    105
  ),
  'FizzBuzzBaxx'
);

--seed--

--seed-contents--

function genFizzBuzz(rules, num) {

}

--solutions--

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;
}