Pengurutan Kustom dengan Fungsi
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 8 dari 54.
Meskipun table.sort() berfungsi dengan baik untuk list sederhana yang berisi angka atau string, data di dunia nyata sering kali lebih kompleks. Kamu mungkin memiliki tabel berisi catatan pemain, item inventaris, atau skor game, dengan setiap entri berupa tabel yang memiliki beberapa field.
Untuk mengurutkan struktur kompleks ini, kamu perlu memberi tahu table.sort() dengan tepat cara membandingkan dua entri. Di sinilah fungsi perbandingan khusus menjadi penting. Fungsi perbandingan menerima dua elemen dan mengembalikan true jika elemen pertama harus ditempatkan sebelum elemen kedua dalam urutan yang sudah diurutkan.
Berikut contoh tabel catatan pemain:
local players = {
{name = "Alice", score = 150},
{name = "Bob", score = 200},
{name = "Charlie", score = 175}
}
table.sort(players, function(a, b)
return a.score > b.score
end)Setelah diurutkan, tabel pemain akan diurutkan berdasarkan skor secara menurun, dengan Bob di urutan pertama (200), Charlie di urutan kedua (175), dan Alice di urutan ketiga (150). Fungsi perbandingan mengakses field score pada setiap tabel pemain untuk menentukan urutannya.
Kamu bisa mengurutkan berdasarkan field apa pun yang kamu inginkan: nama secara alfabetis, level secara numerik, atau bahkan menggabungkan beberapa kriteria.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor TertinggiLatihan sendiri: Compiler Lua online