Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

105
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda