在網頁中看到一個表格,該如何用 JavaScript 快速排序它?

假設你在這個網站 https://www.cmoney.tw/etf/tw/00752/fundholding 看到了一個表格,你發現他沒有依據「權重」進行排序,此時你可以透過前端的 JavaScript 來排序它。

1. 檢查元素找到表格 CSS 選擇器

以我這個例子來說,選擇器為 '.cm-table__table tbody'

2. 撰寫排序用的程式碼

我會想用第三列的「權重」進行排序,以下是範例程式碼:

const table = document.querySelector('.cm-table__table tbody');
const rows = table.querySelectorAll('tr');

// Convert rows to array and sort by third td 
// (which contains the 權重 value)
const sortedRows = [...rows].sort((a, b) => {
  const aWeight = a.querySelector('td:nth-child(3)').innerText;
  const bWeight = b.querySelector('td:nth-child(3)').innerText;
  return parseFloat(bWeight) - parseFloat(aWeight); 
});

// Remove existing rows
while(table.firstChild) {
  table.removeChild(table.firstChild);
}

// Add sorted rows 
sortedRows.forEach(row => {
  table.appendChild(row);
})

3. 將程式碼貼入到 Console 執行

貼入到 Console 執行程式碼後,你會發現表格已經依照權重由大至小排序了!