diff --git a/2-ui/1-document/07-modifying-document/12-sort-table/solution.md b/2-ui/1-document/07-modifying-document/12-sort-table/solution.md index 595f068c..49243e8e 100644 --- a/2-ui/1-document/07-modifying-document/12-sort-table/solution.md +++ b/2-ui/1-document/07-modifying-document/12-sort-table/solution.md @@ -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 `` in the table, but even if HTML table doesn't have ``, the DOM structure always has it. diff --git a/2-ui/1-document/07-modifying-document/12-sort-table/solution.view/index.html b/2-ui/1-document/07-modifying-document/12-sort-table/solution.view/index.html index 7858ee23..40692031 100644 --- a/2-ui/1-document/07-modifying-document/12-sort-table/solution.view/index.html +++ b/2-ui/1-document/07-modifying-document/12-sort-table/solution.view/index.html @@ -24,12 +24,7 @@