Проблема в том, что вы передаете число в свой IIFE, но используете его в качестве индекса. Они отличаются: number
относится к фактическим значениям массива, а index
относится к их позициям в массиве.
Помните, что индекс доступен как второй аргумент в .forEach()
перезвонить. Таким образом, вы должны обращаться к number
и index
по отдельности следующим образом: .forEach((number, index) => ...)
Я считаю, что вы хотели это:
setTimeout(() => console.log(number), index * 1000);
Поскольку вы хотите:
- Записать фактическое значение (элемент в массиве)
- Использовать индекс элемента для определения времени его появления
const numbers = [.1, .2, .3, .4, .5, .6, .7, .8, .9, 1];
const cosNumbers = (reverse) => {
(reverse ? numbers.reverse() : numbers).forEach((number, index) => {
setTimeout(() => console.log(number), index * 1000);
});
};
cosNumbers();
cosNumbers(true);