Добавление данных в из одного массива в другой

Подскажите,пожалуйста, как решить следующую задачу: "Выполните перебор массива arr16. Четные элементы добавьте в массив ar16_even, нечетные в ar16_odd. Добавление в массив - по индексу, а не +=!!!!!. Выведите ar16_odd в div.out-16-odd, а ar16_even в div.out-16-even. Разделитель - пробел."

Я попробовал так:

let ar16 = [0, 2, 5, -4, 6, 22, -9, -12, 8, 12, 13, 78];
let ar16_odd = [];
let ar16_even = [];


function f16() {
    let even = document.querySelector('.out-16-even');
    let odd = document.querySelector('.out-16-odd');
    for (i = 0; i <= ar16.length; i++) {
        if (ar16[i] % 2 == 0) {
            even.innerHTML += ar16[i] + ' ';
        } else {
            odd.innerHTML += 'Нечётная:' + ar16[i] + ' ';
        }
    }
}

document.querySelector('.b-16').onclick = f16;

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

Автор решения: Igor

let ar16 = [0, 2, 5, -4, 6, 22, -9, -12, 8, 12, 13, 78];

function f16() {
  let arodd = [];
  let areven = [];
  ar16.forEach(i => [areven, arodd][i % 2? 1 : 0].push(i));

  document.querySelector('div.out-16-even').textContent = areven.join(' ');
  document.querySelector('div.out-16-odd').textContent = arodd.join(' ');
}
<button onclick='f16()'>Click</button>
<div class='out-16-even'></div>
<div class='out-16-odd'></div>

→ Ссылка
Автор решения: user447135
    let ar16 = [0, 2, 5, -4, 6, 22, -9, -12, 8, 12, 13, 78];
    let ar16_odd = [];
    let ar16_even = [];

    function f16() {
let outOdd = document.querySelector('.out-16-odd');
let outEven = document.querySelector('.out-16-even');
let arOdd = '';
let arEven = '';
let j = 0;
let k = 0;
for (i=0; i<ar16.length; i++) {
    if (ar16[i]%2) {
        ar16_odd[j] = ar16[i];
        j++;
    } else {
        ar16_even[k] = ar16[i];
        k++;
    }
}
for(i=0; i<ar16_odd.length; i++){
    arOdd += ar16_odd[i] + ' ';
}
for(i=0; i<ar16_even.length; i++){
    arEven += ar16_even[i] + ' ';
}
outOdd.innerHTML = arOdd;
outEven.innerHTML = arEven;
}

document.querySelector('.b-16').onclick = f16;
→ Ссылка
Автор решения: Asylbek

Я решил эту задачу без всяких forEach:

let ar16 = [0, 2, 5, -4, 6, 22, -9, -12, 8, 12, 13, 78];
let ar16_odd = [];
let ar16_even = [];

function f16() {
    let out_odd = '';
    let out_even = '';

    for (i = 0; i < ar16.length; i++) {
        if (ar16[i] % 2 == 0) {
            ar16_even[i] = ar16[i];
            out_even += ar16_even[i] + ' ';
        } else if (ar16[i] % 2 !== 0) {
            ar16_odd[i] = ar16[i];
            out_odd += ar16_odd[i] + ' ';
        }
    }

    document.querySelector('.out-16-odd').innerHTML = out_odd;
    document.querySelector('.out-16-even').innerHTML = out_even;

}

document.querySelector('.b-16').onclick = f16;
→ Ссылка