art9mid
@art9mid
front-end

Как отсотрировать табличные значения?

5f954c1bdad00824792103.png
Как отсортировать таблицу по возрасту ?
<table id="grid">
    <thead>
      <tr>
        <th data-type="number">Возраст</th>
        <th data-type="string">Имя</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>5</td>
        <td>Вася</td>
      </tr>
      <tr>
        <td>2</td>
        <td>Петя</td>
      </tr>
      <tr>
        <td>12</td>
        <td>Женя</td>
      </tr>
      <tr>
        <td>9</td>
        <td>Маша</td>
      </tr>
      <tr>
        <td>1</td>
        <td>Илья</td>
      </tr>
    </tbody>
  </table>
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const sort = {
  number: (a, b) => a - b,
  string: (a, b) => a.localeCompare(b),
};

function sortTable(table, colIndex) {
  if (typeof table === 'string') {
    table = document.querySelector(table);
  }

  const value = row => row.cells[colIndex].innerText;
  const compare = sort[table.tHead.rows[0].cells[colIndex].dataset.type];
  const tbody = table.tBodies[0];

  [...tbody.rows]
    .sort((a, b) => compare(value(a), value(b)))
    .forEach(n => tbody.append(n));
}


sortTable('#grid', 0);
sortTable(document.querySelector('table'), 1);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы