Как найти ценральную ячейку в таблице

Существует таблица с нечетным количеством столбцов и строк. Как найти центральную ячейку.

Моё решение лобовое, но оно не сработает, если столбиков или строк будет больше.

  let button = document.querySelector("button");
  let tds = document.querySelectorAll("td"); // получаю массив td
  let value = 0 // начальное значение для ячеек
  tds.forEach((td)=> { //перебираю все td
    button.addEventListener("click", function () {
       value++ // получаю все номера td
      if (value % 13 == 0) { //  делаю в лоб, получая номер центральной ячейки
        td.style.backgroundColor = "black"; // присваюваю этой ячейке новый цвет
      }
    })
  })
 <table id="field">
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
<button>press me</button>


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

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

сначала нужно найти количество всех td amount_td (длина вашего массива tds), тогда индекс центральной ячейки будет amount_td // 2 для чётного amount_td и amount_td // 2 + 1 для нечетного соответственно

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

Как найти ценральную ячейку в таблице

Для таблиц, аналогичных данной, такое можно сделать вот таким образом.

document.querySelector("button").addEventListener("click", function(){
  const i = Math.round(test.rows.length / 2) - 1
  const j = Math.round(test.rows[0].cells.length / 2) - 1
  test.rows[i].cells[j].classList.add('on')
  console.log(i, j)
})
td {
  width: 10px;
  height: 10px;
}
.on {
  background-color: #000;
}
<button>press me</button>
<table id="test" border='1'>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

→ Ссылка