table.sort()
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 7 dari 54.
Saat bekerja dengan tabel bergaya list, kamu sering perlu mengatur data dalam urutan tertentu. Lua menyediakan fungsi table.sort() untuk mengurutkan elemen tabel langsung, artinya fungsi ini mengubah tabel asli alih-alih membuat tabel baru.
Sintaks dasarnya sederhana:
table.sort(myTable)Secara default, table.sort() mengurutkan angka dari yang terkecil ke terbesar dan string menurut abjad. Berikut contoh dengan list skor:
local scores = {85, 42, 91, 67, 55}
table.sort(scores)
-- scores sekarang berisi {42, 55, 67, 85, 91}Untuk string, pengurutan mengikuti urutan alfabet:
local names = {"Charlie", "Alice", "Bob"}
table.sort(names)
-- names sekarang berisi {"Alice", "Bob", "Charlie"}Terkadang, pengurutan default bukan yang kamu butuhkan. Kamu bisa memberikan fungsi perbandingan khusus sebagai argumen kedua untuk mengatur cara elemen dibandingkan. Fungsi ini menerima dua elemen dan mengembalikan true jika elemen pertama harus berada sebelum elemen kedua:
local numbers = {5, 2, 8, 1}
table.sort(numbers, function(a, b)
return a > b -- Urutkan dari terbesar ke terkecil
end)
-- numbers sekarang berisi {8, 5, 2, 1}Fungsi table.sort() hanya berfungsi dengan tabel bergaya list yang memiliki kunci bilangan bulat berurutan mulai dari 1. Ini adalah alat yang ampuh untuk mengatur data sebelum menampilkannya atau memprosesnya dalam urutan tertentu.
Tantangan
MudahTulis fungsi sortScoresDescending yang menerima tabel scores dan mengembalikan string berformat dengan skor yang diurutkan dari urutan terbesar ke terkecil.
Gunakan table.sort() dengan fungsi perbandingan khusus untuk mengurutkan skor dari tertinggi ke terendah, lalu gunakan table.concat() untuk menggabungkannya menjadi satu string yang dipisahkan dengan koma.
Parameter:
scores(table): Tabel bergaya list yang berisi skor numerik
Nilai yang dikembalikan: String berisi skor yang diurutkan dari tertinggi ke terendah dan dipisahkan dengan koma. Format: 95,87,76,54
Coba sendiri
function sortScoresDescending(scores)
-- Tulis kodemu di sini
end
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