@boss0fthegym

Как выводить элементы массива с задержкой 1сек?

Есть массив
var a = ["a", "b", "c"];
И нужно, чтобы каждую секунду поочередно выводилось "a", через секунду "b", через секунду "с".
var timerId = null
var a = ["a", "b", "c"];
for (var i = 0; i < a.length; i++) {
    timerId =  setInterval(() =>{
        console.log(a[i]);
    }, 2000);
}

Я остановился на таком коде, но до indexa нельзя достучаться в setInterval'e.
Буду очень благодарен за помощь!
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
AndrewMarty
@AndrewMarty
HTML - верстальщик
Вот пример с замыканием
let a = ["a", "b", "c"];
let wrapper = close();
show();

function show() {
  wrapper();
  setTimeout(show, 1000);
}

function close() {
  let index = 0;
  return () => {
    if (index <= a.length - 1) {
      console.log(a[index]);
      index++;
    }
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
['a', 'b', 'c'].forEach((v, i) => setTimeout(() => console.log(v), (i + 1) * 1000));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы