В чем ошибка в цикле вывода четных чисел?

Пытаюсь по нажатию кнопки .b-2 вставить в div .out-2 список четных чисел от 2 до 50 разделенными пробелами. А выводит все по порядку от 0 до 48. В чем ошибка?

https://jsfiddle.net/80txake9/

document.querySelector('.b-2').onclick = function t2() {
    let out = ' ';
    for (let i = 0; i < 50; i++) {
        out += i + ' ';
        if ( i % 2 != 0) continue;
        document.querySelector('.out-2').innerHTML = out;
    }
}
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
  1. for (let i = 0; i < 50; ...
    от 0 и до, но не включая, 50. Поменяйте 0 и < 50, чтобы это исправить.
  2. out += i + ' ';  // добавляется всегда, в любом случае
    if ( i % 2 != 0) continue; // проверка уже потом
    поменяйте порядок: сначала проверка, потом добавление
  3. document.querySelector('.out-2').innerHTML = out;
    срабатывает в каждой итерации цикла. А надо 1 раз, когда цикл отыграл все повторы. Вынесите эту строку из цикла.


spoiler

2..50 через один, по чётным — это 2 * (1..25) подряд.
document.querySelector('.b-2').addEventListener('click', () => {
  document.querySelector('.out-2').innerText = Array(25) // создали массив из 25 пустых слотов
    .fill() // заполнили их undefined, чтобы можно было..
    .map((n, i) => 2 * (i + 1)) // каждый заменить на (его индекс + 1) * 2
    .join(' '); // и склеить в строку через пробел
})
все эти методы массива можно посмотреть на MDN.


Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы