Intentar crear una función que devuelva una función y una función devuelta proporcionará los caracteres individuales de la cadena que se pasa a la función original en sus invocaciones. Cuando se alcanza el final de la cadena, comenzará de nuevo desde el principio.
Ejemplo: 'gato' debería devolver: 'c' (en la primera invocación) 'a' (en la segunda invocación) 't' (en la tercera) 'c' (luego debería volver al principio)
Aquí está el código que tengo hasta ahora:
function individualChar (str) { let individualStr = str; let invoked = 0; return function () { if (invoked > 0) { let char = individualStr.slice(0); invoked++ return `${char}`; } return individualStr; }}
Mi proceso de pensamiento fue tener el individualStr asignado al argumento str junto con la creación de un contador 'invocado'. Luego, en la función devuelta, crea la variable 'char' y asigna eso a individualStr y córtalo en el primer carácter (0), para sacarlo, y luego tener un contador de invocación para invocar la función según sea necesario.
Sin embargo, a partir de ahora, solo devuelve la cadena completa.
Pensé en usar un bucle while también para realizar un seguimiento de la cantidad de invocaciones, pero no estaba seguro de si ese sería el mejor enfoque para esto.
Cualquier orientación sería apreciada!