¿Alguna duda?

Reto 3 Reto 3

Reto 3

¡Hola Developers!

En este reto pondrás a prueba tu lógica con condicionales y bucles en JavaScript. Tu misión será implementar el clásico problema FizzBuzz: dado un número N, devuelve un array con los resultados del 1 al N.

Enunciado

index.js
/*
Crea una función llamada `fizzBuzz` que reciba un número entero N.
Debe devolver un array de N elementos donde:
- Los múltiplos de 3 son reemplazados por "Fizz"
- Los múltiplos de 5 son reemplazados por "Buzz"
- Los múltiplos de 3 y 5 son reemplazados por "FizzBuzz"
- El resto de números se incluyen tal cual.
Ejemplo:
Entrada: 15
Salida: [1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz"]
*/

Pistas

Pista 1 Itera del 1 al N con un bucle for o usa Array.from.

pista1.js
for (let i = 1; i <= n; i++) { ... }

Pista 2 Usa el operador módulo (%) para comprobar divisibilidad.

pista2.js
i % 3 === 0 // true si i es múltiplo de 3

Pista 3 Comprueba primero el caso de FizzBuzz (múltiplo de 3 y 5) antes que los casos individuales.

pista3.js
if (i % 15 === 0) resultado.push("FizzBuzz");
else if (i % 3 === 0) resultado.push("Fizz");
else if (i % 5 === 0) resultado.push("Buzz");
else resultado.push(i);

Solución

Danger zone

Solución Aquí tienes una posible implementación de la función:

solucion.js
function fizzBuzz(n) {
const resultado = [];
for (let i = 1; i <= n; i++) {
if (i % 15 === 0) resultado.push("FizzBuzz");
else if (i % 3 === 0) resultado.push("Fizz");
else if (i % 5 === 0) resultado.push("Buzz");
else resultado.push(i);
}
return resultado;
}
// Ejemplo de uso:
console.log(fizzBuzz(15));
// Resultado esperado: [1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz"]

← Volver a los retos