Проверка на четность и вывод с помощью цикла

Функция должна выводить в out-10 четные годы от 1950 до 2000 включительно Решить с помощью цикла

если выполнить код выводит 2001

function t10() {
    let out = document.querySelector('.out-10');
    let a = ' ';
    for (i = 1950; i <= 2000; i++); {
        if (i%2) {
            a += i + ' ';
        }
    }
    out.innerHTML = a;
}

document.querySelector('.b-10').onclick = t10;

Ответы (2 шт):

Автор решения: Алексей Шиманский

Результат a % b – это остаток от целочисленного деления a на b. Он может быть равен нулю, а может не равен. При делении на 2 остаток будет ноль. И нужно как раз проверять на это

function t10() {
    let out = document.querySelector('.out-10');
    let a = ' ';
    for (let i = 1950; i <= 2000; i++) {    
        if (i%2 === 0) { // <!---------
            a += i + ' ';
        }
    }
    out.innerHTML = a;
}

t10();
//document.querySelector('.b-10').onclick = t10;
<div class="out-10"></div>

→ Ссылка
Автор решения: Aleksei Prokopev

Если кому пригодится — другой подход:

function t10() {
  let a = ' ';
  let i = 1948;
  while ( i <= 2000 ) { 
    i++   
    if (i % 2 === 0) {
      a += i + ' ';
    }
  }
  document.querySelector('.out-10').innerHTML = (a)
}
document.querySelector('.b-10').onclick = t10;
→ Ссылка