Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2020, 18:25
Новичок на форуме
Отправить личное сообщение для alex-nosov1980 Посмотреть профиль Найти все сообщения от alex-nosov1980
 
Регистрация: 15.04.2020
Сообщений: 2

Почему метод 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);

Последний раз редактировалось alex-nosov1980, 15.04.2020 в 18:35.
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2020, 19:29
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

В вашем втором примере порядок выполнения будет такой
Стр 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);
}

Последний раз редактировалось voraa, 15.04.2020 в 19:37.
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2020, 20:42
Новичок на форуме
Отправить личное сообщение для alex-nosov1980 Посмотреть профиль Найти все сообщения от alex-nosov1980
 
Регистрация: 15.04.2020
Сообщений: 2

Спасибо, оказывается все так просто. А я полтора часа голову ломал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает this в setInterval? menscool Общие вопросы Javascript 1 07.10.2015 06:46
Помогите разобраться почему не работает скрипт корректно Batyabest AJAX и COMET 1 09.07.2015 05:08
Почему не работает код sean88 Общие вопросы Javascript 1 04.11.2014 16:10
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31