Я думаю, что вы можете искать что-то вроде приведенного ниже фрагмента. Массив включает в себя все значения на каждой итерации, потому что l oop выполняется до завершения, прежде чем setTimeout
начнет печатать вещи.
Поскольку массивы хранятся в виде ссылок, num
видоизменяется с помощью numbers.push(i)
.
Передача функции в новый массив каждый l oop решит эту проблему.
function printNumber(num,i){
setTimeout(()=>console.log(num),500*i);
}
let numbers = [50];
for(let i=1; i<=10; i++){
// Create new array when you pass it here
printNumber([...numbers],i);
numbers.push(i);
}