ความต้องการที่พบบ่อยในโครงสร้างข้อมูลหลายอันคือการนำค่ากลับมาใช้ 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("Your place in line is " .. placeInLine)
ตัวอย่างการค้นหาพจนานุกรม
คุณเคยค้นหาสัตว์เลี้ยงที่หายไปในบ้านไปห้องโดยห้อง? ด้วยโค้ดของคุณเองสัญลักษณ์การค้นหาผ่านหนังสือชื่อเรื่องชื่อห้องที่มีสุนัขที่หายไปห้อง
คัดลอกพจนาภาษาด้านล่างเพื่อให้เป็นบ้าน
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}สร้างฟังก์ชันใหม่ที่มีชื่อว่า 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