ความต้องการทั่วไปในโครงสร้างข้อมูลหลายๆ ชนิดคือการคืนค่า บทความนี้จะพูดถึงการค้นหาตารางโดยใช้ pairs() หรือ ipairs() เพื่อคืนค่าครึ่งหนึ่งขององค์ประกอบของตาราง เช่น คีย์หรือค่า เพื่อหาครึ่งส่วนที่เหลือ
ตัวอย่างใช้การแสดงรายการเรือที่รอการซ่อม ipairs() ถูกใช้เพื่อคืนที่ของเรือในแถว
local shipToFind = "Void Racer"
-- เรือที่รอการซ่อม
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- รับที่แถว
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--พิมพ์ที่แถว
local placeInLine = getPlaceInLine(shipToFind)
print("ที่ของคุณในแถวคือ " .. placeInLine)
ตัวอย่างการค้นหาพจนานุกรม
คุณเคยค้นหาสัตว์เลี้ยงที่หายในบ้านโดยการไปห้องทีละห้องไหม? เขียนฟังก์ชันของคุณเองเพื่อค้นหาผ่านพจนานุกรมที่ชื่อว่า house เพื่อตรวจสอบว่าห้องไหนมีลูกสุนัขที่หายไป
คัดลอกพจนานุกรมด้านล่างเพื่อทำหน้าที่เป็นบ้าน
local house = {kitchen = "กองของขยะ",livingRoom = "ลูกแมว",bedroom1 = "ไม่มีใครอยู่",bedroom2 = "ลูกสุนัข",}สร้างฟังก์ชันใหม่ชื่อ findPet() เพื่อค้นหาพจนานุกรม รวมพารามิเตอร์สำหรับพจนานุกรรมที่จะค้นหาและค่าที่จะค้นหา
ใช้ pairs() เพื่อวนซ้ำผ่านพจนานุกรม ลองเขียนโค้ดของคุณเองก่อนที่จะตรวจสอบงานของคุณในคำตอบด้านล่าง
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendขณะที่ลูป for วนผ่านพจนานุกรม ให้ใช้ return เพื่อส่งคืนห้องที่สัตว์เลี้ยงถูกพบ
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend