¿Por qué tengo valores dobles? Estoy usando useEffect y la función setInterval. En la función setInterval hay un solo incremento o decremento y después de un segundo hay otro. ¿Por qué obtengo un valor doble en los resultados? ¿Cómo cambiarlo?
const demo = "1 2 3 4 5"; let i = 0; let j = demo.length; useEffect(() => { const interval = setInterval(() => { if (i < demo.length) { console.log(demo.substring(0, i)); i++; } else if (j > 0) { console.log(demo.substring(0, j)); j--; } }, 1000); }, [i, j]);Resultado:
1 1 1 2 1 2 1 2 3 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 5 1 2 3 4 1 2 3 4 1 2 3 1 2 3 1 2 1 2 1 1No está obteniendo valores dobles, está obteniendo los espacios en la cadena de demo .
Tus resultados son
'1' '1 ' '1 2' '1 2 ' '1 2 3' '1 2 3 ' '1 2 3 4' '1 2 3 4 ' '1 2 3 4 5' '1 2 3 4 ' '1 2 3 4' '1 2 3 ' '1 2 3' '1 2 ' '1 2' '1 ' '1'