Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

226
Views
Pregunta básica de Fizzbuzz: cómo insertar elementos reemplazados en una matriz vacía en lugar de simplemente imprimirlos

Entonces estoy tratando de resolver

Cree una función fizzbuzz que tome un número, n. fizzbuzz debe recorrer los números del 1 al n e insertar cada número en la matriz de resultados usando las siguientes reglas:

  1. Empuje la cadena "fizz" en lugar de números divisibles por 3.
  2. Empuje la cadena "zumbido" en lugar de números divisibles por 5.
  3. Empuje la cadena "fizzbuzz" en lugar de números divisibles por 3 y 5.

Ejecute la prueba console.log para verificar su trabajo. "

Mi código se encuentra a continuación

 const results = []; const fizzbuzz = (n) => { for (let i = 1; i <= n; i++) { let str = ""; if (i % 3 === 0) str += "fizz" if (i % 5 === 0) str += "buzz" if (str === "") str = i; console.log(str); } }

Realmente no sé cómo cambiar mis resultados para que estén dentro de la matriz "resultados". Mi suposición es usar array.push pero no sé dónde incluirlo en el código.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Solo necesita declarar su matriz en blanco dentro de su función, usar el método Array push y luego devolver la matriz al final de la función.

 const fizzbuzz = (n) => { const results = []; for (let i = 1; i <= n; i++) { let str = ""; if (i % 3 === 0) str += "fizz" if (i % 5 === 0) str += "buzz" if (str === "") str = i; results.push(str); } return results; }

Solo por diversión, aquí hay una mejor manera de resolverlo usando operadores ternarios . Este método solo requiere 2 comprobaciones.

 const fizzbuzz = (n) => { const results = []; for (let i = 1; i <= n; ++i) { results.push( i % 3 === 0 ? (i % 5 === 0 ? 'fizzbuzz' : 'fizz') : (i % 5 === 0 ? 'buzz' : i) ); } return results; }
about 4 years ago · Juan Pablo Isaza Report

0

Al contrario de lo que dije en mi comentario a la respuesta de @ruleboy, ahora proporcioné una versión muy "nerd" de fizzbuzz sin usar el operador de módulo en absoluto.

En mi fragmento utilizo tres contadores: i , n3 y n5 . El resultado no es fácil de leer , por lo que nunca recomendaría usarlo en ningún código de producción . Pero pensé que podría ser entretenido echarle un vistazo, no obstante:

 function fizzbuzz(n){ const results = []; for (let i=1,n3=2,n5=4; i<=n; ++i,n3--?0:n3+=3,n5--?0:n5+=5) { results.push(n3?n5?i:"buzz":"fizz"+(n5?"":"buzz")); } return results; } console.log(fizzbuzz(30))

La expresión n3--?0:n3+=3,n5--?0:n5+=5 decrementa los contadores n3 y n5 . Cada vez que cualquiera de los contadores alcanza el valor -1 (p. ej.: n3--==false ) vuelvo a agregar el valor máximo a cada contador (3 o 5). Muy nerd, como ya mencioné anteriormente. :D

about 4 years ago · Juan Pablo Isaza Report

0

Desea agregarlo a la matriz cada vez que lo imprima, así que llame a push en lugar de a console.log() :

 const results = []; const fizzbuzz = (n) => { for (let i = 1; i <= n; i++) { let str = ""; if (i % 3 === 0) str += "fizz" if (i % 5 === 0) str += "buzz" if (str === "") str = i; results.push(str) //Adding to array instead } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!