Sort the table
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.
Çö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);
-
table.querySelectorAll('tr')gibi tüm<tr>leri al, sonra onlardan bir array yap, çünkü array yöntemlerine ihtiyacımız var. -
İlk TR (
table.rows[0]) aslında bir tablo başlığıdır, bu yüzden geri kalanını.slice(1)ile alıyoruz. -
Daha sonra onları ilk
<td>(isim alanı)'nın içeriği ile karşılaştıryoruz. -
Ş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 birtable.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.