На данный вопрос уже ответили:
Не могу понять. как в js сделать интервал выполнения для нескольких объектов.
Например, есть такой массив
var data = {
data1:{
increment:1,
innerTo:"#elem"
},
data2:{
increment:20,
innerTo:"#elem2"
},
dataN:{
increment:400,
innerTo:"#elemN"
}
};
Он динамический, то есть данные могут добавляться и удаляться. Как сделать с заданным интервалом времени обход этого списка и для каждого данного выполнять определенные действия, которые там указаны?
например для data1 каждую секунду увеличивать значение на 1 и вставлять в элемент. Для второго увеличивать каждую секунду на 2 и вставлять в другой элемент. И такой список может изменяться.
Вот так через setInterval:
data = [
{ increment:1, timer: 1000, innerTo :"elem1" },
{ increment:1, timer: 2000, innerTo:"elem2" },
{ increment:1, timer: 3000, innerTo:"elem3" }
]
for(let el of data) {
setInterval( () => {
document.getElementById(el.innerTo).innerHTML = el.increment++;
}, el.timer);
}
<div id='elem1'>1</div>
<div id='elem2'>1</div>
<div id='elem3'>1</div>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей