Infinitely loop over an array
const loopOverArray = (arr) => {
let index = -1;
const getNextElementFromArray = () => {
index++;
const nextIndex = index % arr.length;
return arr[nextIndex];
};
return getNextElementFromArray;
};
const getNextElement = loopOverArray([1, 2, 3]);
console.log(getNextElement()); // 1
console.log(getNextElement()); // 2
console.log(getNextElement()); // 3
console.log(getNextElement()); // 1
