Почему метод 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, время: 07:29. |