const directions = ["North", "West", "South", "East"]; Quiero directions.next(); para recorrerlos en orden. ¿Cómo logro eso en la última iteración de ECMAScript? Quiero que cada función que solicite instrucciones obtenga lo que .next() estableció para ser el siguiente.
¿Necesita ser su propia estructura de mini-datos?
Esto es lo que quiero lograr:
`["Jason Bourne", "Foma Kinaev", "John Michael Kane"]`.next() # // Jason Bourne `["Jason Bourne", "Foma Kinaev", "John Michael Kane"]`.next() # // Foma Kinaev `["Jason Bourne", "Foma Kinaev", "John Michael Kane"]`.next() # // John Michael Kane `["Jason Bourne", "Foma Kinaev", "John Michael Kane"]`.next() # // Jason BournePuede usar una función de generador para producir los valores de su matriz continuamente en un ciclo while (para habilitar la iteración circular). Luego use el generador para darle un iterador al que luego puede llamar .next() para obtener el valor:
const directions = ["North", "West", "South", "East"]; function* getItr(arr) { while(true) yield* arr; } const itr = getItr(directions); console.log(itr.next().value); // North console.log(itr.next().value); // West console.log(itr.next().value); // South console.log(itr.next().value); // East console.log(itr.next().value); // NorthLas matrices de JavaScript no mantienen ningún estado de iteración, por lo que deberá manejar algún tipo de puntero de índice interno usted mismo
const directions = ["North", "West", "South", "East"]; Array.prototype._current = 0 Array.prototype.next = function() { const cur = this[this._current] this._current = (this._current + 1) % this.length return cur } console.log(directions.next()) console.log(directions.next()) console.log(directions.next()) console.log(directions.next()) console.log(directions.next())