minor fixes

This commit is contained in:
Ilya Kantor 2019-12-26 19:01:30 +03:00
parent b015213b7b
commit 50395ec56e
2 changed files with 2 additions and 14 deletions

View file

@ -2,12 +2,7 @@ The solution is short, yet may look a bit tricky, so here I provide it with exte
```js
let sortedRows = Array.from(table.tBodies[0].rows) // 1
.sort((rowA, rowB) => { // 2
let valueA = rowA.cells[0].innerHTML;
let valueB = rowB.cells[0].innerHTML;
return valueA > valueB ? 1 :
valueA == valueB ? 0 : -1;
});
.sort((rowA, rowB) => rowA.cells[0].innerHTML.localeCompare(rowB.cells[0].innerHTML));
table.tBodies[0].append(...sortedRows); // (3)
```
@ -20,6 +15,4 @@ The step-by-step algorthm:
We don't have to remove row elements, just "re-insert", they leave the old place automatically.
Please note: our comparison function `(2)` returns `0` for equal table rows. That's handy for cases when we accidentally re-sort the table. E.g. if our users triggers such re-sorting. Returning `0` makes sure that same-named users won't get re-ordered, as opposed to a more simpler solution `valueA > valueB ? 1 : -1`.
P.S. In our case, there's an explicit `<tbody>` in the table, but even if HTML table doesn't have `<tbody>`, the DOM structure always has it.