Quiero preguntar por qué cuando giro if (i % 3 === 0 && i % 5 === 0) {console.log("Fizz")}; en else if(i % 3 === 0 && i % 5 === 0) {console.log("Fizz")}; viceversa, solo obtengo Fizz y Buzz en console.log y no FizzBuzz a diferencia de cuando usé if. Espero el mismo resultado con else si creo que deberían ser iguales.
A continuación se muestra el guión completo como referencia.
let answer = 100; for (let i = 1; i <= answer; i++) { if (i % 3 === 0 && i % 5 === 0) { console.log("FizzBuzz"); } else if (i % 5 === 0) { console.log("Buzz"); } else if (i % 3 === 0) { console.log("Fizz"); } else { console.log(i); } }olvídate de las soluciones de la vieja escuela.
En mi humilde opinión, el método de matriz más importante para aprender es el mapa :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Que "camina sobre" el Array y devuelve un nuevo valor para ese índice Array
let arr = Array(100) .fill((x, div, label) => x % div ? "" : label) //store Function in every index .map((func, idx) => func(++idx, 3, "Fizz") + func(idx, 5, "Buzz") || idx ); document.body.append(arr.join(", ")); fill toma un solo objeto, ¡no se ejecuta 100 veces!
Dado que las funciones de JavaScript son objetos, este código declara una función una vez para cada índice
Tenga en cuenta el ++idx porque queremos comenzar en 1, no en 0
En JavaScript, ""+"" es un valor Falsy, por lo que devuelve el valor idx para números que no son de FizzBuzz
Más métodos de matriz explicados: https://array-methods.github.io
Cuando usa else if, la condición if anterior tiene que ser falsa para que se verifique la condición else if (y su contenido posiblemente se ejecute).
De lo contrario, es solo una cadena de independientes si s.
No necesita considerar "ambos casos" por separado, como lo hace su código. En pseudocódigo:
if (i is divisible by 3) { print "Fizz" } if (i is divisible by 5) { print "Buzz" }Si ejecuta esto en papel, puede ver que imprimirá "FizzBuzz" al ejecutar ambas condiciones. Así que no está mal tener un caso especial para ambos, pero es más fácil (y más claro) hacerlo sin eso.