Тема: Масиви: незрозуміла поведінка при заповненні в циклом
Доброго дня.
Недавно почав вивчати JS. Намагаюсь зрозуміти як він працює, пишучи прості програми. Зазвичай, коли щось не зрозуміло, вдається розібратись з допомогою Google, але в даному випадку я навіть не знаю як сформувати свій запит.
Хочу зрозуміти чому фрагмент коду відмовляється працювати в середині циклу, але працює поза його межами.
Є масив table, який потрібно заповнити значеннями з масиву randomNumbers.
За умовою програми масив table завжди має довжину 9, 15, 25 або 49, а randomNumbers - на 1 менше. Середній елемент масиву table потрібно пропустити.
Коли цикл доходить до середнього елементу table, значення з randomNumbers має присвоїтись не і-му елементу table, а останньому.
Ось в такому випадку останній елемент масиву table після виконання циклу міститиме значення undefined:
for (let i = 0; i < table.length; i++) {
if(i === (table.length - 1)/2) {
table[table.length - 1].innerHTML = randomNumbers[i];
continue;
}
table[i].innerHTML = randomNumbers[i];
}
Але якщо останньому елементу масиву table призначити потрібне значення поза циклом, тоді воно вже міститиме саме це потрібне значення.
for (let i = 0; i < table.length; i++) {
if(i === (table.length - 1)/2) {
continue;
}
table[i].innerHTML = randomNumbers[i];
}
table[table.length - 1].innerHTML = randomNumbers[(table.length - 1) / 2];
З повним кодом можна ознайомитись на моєму гітхабі в папці shulte_tables