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

111
Views
¿Cómo reemplazo los elementos en la matriz y le asigno cero en javascript?

Escriba una función squareWave(arr) que tome la siguiente array : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ], y comienza a reemplazar los números, uno por uno, con ceros , hasta llegar a un múltiplo de 5 . A partir de ese momento, comienza a reemplazar los números con 1, hasta llegar al siguiente múltiplo de 5.

Luego, desde ese punto en adelante, comience a reemplazar con 0 nuevamente , luego 1 nuevamente , y así sucesivamente hasta llegar al final de la matriz. Mi código no funciona ¿Alguien puede ayudarme?

 let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; function squareWave(arr) { let zeros = true; let output = []; for (let i = 0; i < arr.length; i++) { if (arr[i] % 5) { arr[i] = 0; } else if (arr[i] !== 5) { arr[i] = 1; } } console.log(arr) }

La salida debe ser = [0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1]

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

0

No está realizando un seguimiento de si la entrada actual debe ser 0 o 1. Además, no está utilizando variables zeros y output

En lugar de un valor booleano, puede mantener un 0 o un 1 en los zeros de la variable y cambiar el valor cuando la mod de 5 sea igual a cero.

 if (arr[i] % 5 === 0) {

Luego, para cada iteración, escriba el valor de zeros

 let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; function squareWave(arr) { let zeros = 0; let output = []; for (let i = 0; i < arr.length; i++) { if (arr[i] % 5 === 0) { zeros = 1 - zeros } output[i] = zeros; } return output; } console.log(squareWave(input));

O en resumen:

 let input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; let res = input.map(i => Math.abs(Math.floor(i / 5) % 2)) console.log(res)

about 4 years ago · Juan Pablo Isaza Report

0

Puede utilizar la función de map de Array. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

 let control = 0; const list = input.map(value => { if (value % 5 === 0) { control = control === 0 ? 1 : 0; } return control; }); console.log(list);
about 4 years ago · Juan Pablo Isaza Report

0

Como esta es claramente una pregunta de tarea, no le daré la respuesta, pero sugeriré sus próximos pasos. De hecho, casi tienes la idea de la respuesta, pero en realidad no la implementaste.

Supongo que la salida de su código actual se parece a [0, 0, 0, 0, 1, 0, 0, 0, 0, 1, ...]

Al comienzo de su código, tiene una variable booleana llamada zeros . ¿Para qué crees que sirve este valor booleano y por qué no lo has usado en tu bucle?

Entonces, su código actual genera 1 cuando el valor es un múltiplo de 5, pero luego se olvida inmediatamente después. ¿Cómo podrías arreglar eso?

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!