Derse geri dön

Sort the table

önem: 5

Bir tablo var:

İsim Soyisim Yaş
John Smith 10
Pete Brown 15
Ann Lee 5
... ... ...

Belki içinde daha çok satır var.

"name" sütunu tarafından sıralanması için kodu buraya yazın.

Görevler için korunaklı alan aç.

Çözüm kısa, ancak biraz kafa karıştırıcı görünebilir, bu yüzden burada kapsamlı yorumlar sunuyorum:

let sortedRows = Array.from(table.rows)
  .slice(1)
  .sort((rowA, rowB) => rowA.cells[0].innerHTML > rowB.cells[0].innerHTML ? 1 : -1);

table.tBodies[0].append(...sortedRows);
  1. table.querySelectorAll('tr') gibi tüm <tr>leri al, sonra onlardan bir array yap, çünkü array yöntemlerine ihtiyacımız var.

  2. İlk TR (table.rows[0]) aslında bir tablo başlığıdır, bu yüzden geri kalanını .slice(1) ile alıyoruz.

  3. Daha sonra onları ilk <td> (isim alanı)'nın içeriği ile karşılaştıryoruz.

  4. Şimdi düğümleri .append(...sortedRows) olarak doğru sırada ekleyin.

    Tabloların doğrudan belirtilmeyen bir öğesi vardır, bu yüzden onu alır ve içine ekleriz: basit bir table.append(...) başarısız olacaktır.

    Lütfen not edin: Onları kaldırmak zorunda değiliz, sadece yeniden ekle (“re-insert”), onlar eski yerlerini kendiliğinden bırakacaktır.

Çözümü korunaklı alanda aç.