Відсортуйте таблицю

Рішення коротке, але може виглядати дещо складним, тому я надаю його з розширеними коментарями:

let sortedRows = Array.from(table.tBodies[0].rows) // 1
  .sort((rowA, rowB) => rowA.cells[0].innerHTML.localeCompare(rowB.cells[0].innerHTML));

table.tBodies[0].append(...sortedRows); // (3)

Покроковий алгоритм:

  1. Отримати всі <tr> з <tbody>.
  2. Потім відсортувати їх порівнюючи за вмістом першого <td> (поле «Ім’я»).
  3. Вставити вузли в правильному порядку .append(...sortedRows).

Нам не потрібно видаляти існуючі рядки з таблиці, лише повторно вставити і вони автоматично залишать своє попереднє місце розташування.

P.S. У нашому випадку в таблиці є явний <tbody>, але навіть якщо HTML-таблиця не має <tbody>, він завжди є в структурі DOM.

Відкрити рішення в пісочниці.