Hi @Whitby and Welcome to the GreenSock Forum!
To do this you need to have the to() tween in a for loop and use let instead of var so you can iterate DOM elements in the loop properly.
function numberWithCommas(n) {
var parts=n.toString().split(".");
return parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
var endingCounterVar = [2100, 1000, 1500, 1800];
for (let i = 0; i <= 3; i++) {
let counter = { var: 0 };
let tal = document.getElementById("tal-"+i);
TweenMax.to(counter, 5, {
var: endingCounterVar[i],
onUpdate: function () {
let nwc = numberWithCommas(counter.var);
tal.innerHTML = nwc;
},
ease:Circ.easeOut
});
}
Differences between using Javascript let vs var in the below codepen example (better to view on codepen with console to see output):
Happy Tweening