freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/rosetta-code/general-fizzbuzz.md

3.0 KiB

id title challengeType forumTopicId dashedName
5a23c84252665b21eecc7e78 FizzBuzz generico 1 302273 general-fizzbuzz

--description--

Scrivi una versione generalizzata di Fizzbuzz che funziona per ogni lista di fattori, assieme alle loro parole.

Questa è in pratica una implementazione di "fizzbuzz" dove le regole del gioco sono date all'utente. Crea una funzione per implementarlo. La funzione dovrebbe accettare due parametri.

Il primo è un array con le regole di FizzBuzz. Per esempio [ [3, "Fizz"] , [5, "Buzz"] ].

Questo indica che Fizz dovrebbe essere scritto se il numero è un multiplo di 3 e Buzz se è un multiplo di 5. Se è un multiplo di entrambi allora le stringhe dovrebbero essere concatenate nell'ordine specificato nell'array. In questo caso, FizzBuzz se il numero è un multiplo di 3 e 5.

Il secondo parametro è il numero per cui la funzione dovrebbe restituire una stringa come detto sopra.

--hints--

genFizzBuzz dovrebbe essere una funzione.

assert(typeof genFizzBuzz == 'function');

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) dovrebbe restituire una stringa.

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

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) dovrebbe restituire "Fizz".

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

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10) dovrebbe restituire "Buzz".

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

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12) dovrebbe restituire "Buzz".

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

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13) dovrebbe restituire "13".

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

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15) dovrebbe restituire "BuzzFizz".

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

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15) dovrebbe restituire "FizzBuzz".

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

genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105) dovrebbe restituire "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;
}