Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

113
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda