Почему метод forEach не работает в функции?
Объясните пожалуйста новичку почему forEach не работает в функции.
Дан массив а1 нужно перемножить элементы массива на 2 используя forEach. Действия должны запускаться при вызове функции. В первом случае все работает: const a1 = [4, 5, 6, 7, 12, 34, 56, 78, 90, 11]; let str = ''; a1.forEach(a => { let d = (a * 2); str += d + ','; }) let a1_res = str.split(','); document.querySelector('.b1').onclick = () => console.log(a1_res); В этом нет: const a1 = [4, 5, 6, 7, 12, 34, 56, 78, 90, 11]; let str = ''; document.querySelector('.b1').onclick = () => { a1.forEach(a => { let d = (a * 2); str += d + ','; }) } let a1_res = str.split(','); console.log(a1_res); |
В вашем втором примере порядок выполнения будет такой
Стр 1, 2, 3 (тут в свойство onclick запишется ссылка на функцию) Потом стр. 9, 10 (str будет еще '') А строки 5-7 будут выполнены только после клика. Вот так надо. const a1 = [4, 5, 6, 7, 12, 34, 56, 78, 90, 11]; let str = ''; document.querySelector('.b1').onclick = () => { a1.forEach(a => { let d = (a * 2); str += d + ','; }) let a1_res = str.split(','); console.log(a1_res); } |
Спасибо, оказывается все так просто. А я полтора часа голову ломал.
|
Часовой пояс GMT +3, время: 00:05. |