Сообщение от uzlprog
|
Задача такая: есть массив данных arr, мне нужно стряпать функцию, которая бесконечно (по кругу) перебирает значения каждого элемента массива через определенное время (1 сек) и присваивает это значение переменной a. При обращении она должна возвращать текущее значение переменной а.
|
function createFunc(arr, interval) {
let i = 0;
setInterval(() => { i = (i + 1) % arr.length; }, interval);
return () => arr[i];
}
const func = createFunc([11, 22, 33, 44], 1000);
...
// будет возвращать тот элемент массива, который сейчас выбран.
// выбор меняется раз в секунду по кругу
alert(func());
как вариант, можно добавить в функцию останавливатель и запускатель таймера, но кажется это сейчас без надобности.
так же - запускать таймер при первом вызове функции, а не при создании. Это надо?