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

104
Visualizações
Restablecer el índice en un bucle for

Esta función necesita encontrar la primera aparición de números consecutivos cuya suma sea igual a 10 y devolverlos como una matriz. Mi idea era seguir sumando los números hasta que el acumulador, en este caso x se vuelve mayor que 10, momento en el que el valor de x se restablece a cero, y i se restablece al índice 1, al ser asignado a la variable ct que se supone que crece en uno en cada reinicio, por lo que el ciclo retrocederá y comenzará en el siguiente elemento, hasta que obtenga el valor correcto. Pero por alguna razón, ct está atascado en 1 y no crece y el ciclo no pasa del segundo elemento de la matriz en el índice 1. ¿Hay un error en la lógica o en la implementación?

Advertencia: este código puede hacer que la página se bloquee o deje de responder

 const arr = [2, 3, 1, 2, 7, 2, 5, 4, 5, 1, 2, 1]; function test(arr) { let x = 0; for (let i = 0; i < arr.length; i++) { let ct = 0; x = x + arr[i] if (x > 10) { x = 0; i = ct; ct++ } console.log(x) } } console.log(test(arr))

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es que ha definido ct en el lugar equivocado. Está dentro del bucle, lo que significa que cada vez que llega a un punto en el que i = ct , i se restablece a 0 y ct++ no tiene ningún efecto (porque cada iteración, ct se restablece a 0 ). Debe definir ct en el mismo ámbito que x :

 const arr = [2, 3, 1, 2, 7, 2, 5, 4, 5, 1, 2, 1]; function test(arr) { let x = 0; let ct = 0; for (let i = 0; i < arr.length; i++) { x = x + arr[i]; if (x > 10) { x = 0; i = ct; ct++; } console.log(x); } } test(arr);

También he completado el resto de la lógica de la función por si lo desea:

 const arr = [2, 3, 1, 2, 7, 2, 5, 4, 5, 1, 2, 1]; function test(arr) { let x = 0; let ct = 0; let result = []; for (let i = 0; i < arr.length; i++) { x = x + arr[i]; if (x > 10) { x = 0; i = ct; ct++; } if (x == 10) { result = arr.slice(ct, i + 1); return result; } console.log(x); } return result; } console.log(test(arr));

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