Добавление данных в из одного массива в другой
Подскажите,пожалуйста, как решить следующую задачу: "Выполните перебор массива 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;