Yêu cầu thông thường trong nhiều cấu hình dữ liệu là trả lại giá trị. Bài viết này sẽ xem xét tìm kiếm một bảng bằng cách sử dụng pairs() hoặc ipairs() cho một nửa bất kỳ thành phần bảng, chẳng hạn như chìa khóa hoặc giá trị, để tìm và trả lạ
Ví dụ sử dụng một danh sách dàn tàu đang chờ để sửa chữa. ipairs() được sử dụng để trả vị trí của một tàu trên hàng.
local shipToFind = "Void Racer"
-- Các tàu đang chờ để sửa chữa
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Nhận được thứ hạng trong hàng
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--In địa điểm theo dòng
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Ví dụ tìm kiếm trong từ điển
Bạn có bao giờ tìm một con vật nuôi bị mất trong nhà đi từ phòng này sang phòng kia không? Trên mã của riêng bạn một chức năng tìm kiếm thông qua một từ điển tên là nhà để xem phòng nào có chứa một con chó mất tích.
Sao chép các từ điển bên dưới để hành động như là nhà.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Tạo một chức năng mới có tên là findPet() để tìm kiếm từ điển. Bao gồm các tham số cho tìm kiếm từ điển nào và giá trị tìm kiếm.
Sử dụng pairs() để lặp qua từ điển. Hãy thử viết mã của riêng bạn trước khi kiểm tra công việc của bạn trong giải pháp dưới đây.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendKhi for lặp lại qua các từ điều đó, hãy sử dụng return để trả lại phòng mà thú cưng đã được tìm thấy.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend