Een veelvoorkomende behoefte in veel datastructuren is het retourneren van waarden. Dit artikel behandelt het doorzoeken van een tabel met behulp van pairs() of ipairs() voor de helft van een tabel element, zoals de sleutel of waarde, om de andere helft te vinden en te retourneren.
Het voorbeeld gebruikt een array die schepen opsomt die wachten op reparatie. ipairs() wordt gebruikt om de plaats van een schip in de rij te retourneren.
local shipToFind = "Void Racer"
-- Schepen die wachten op reparatie
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Verkrijg plaats in de rij
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Print plaats in de rij
local placeInLine = getPlaceInLine(shipToFind)
print("Je plaats in de rij is " .. placeInLine)Voorbeeld van woordenboekzoektocht
Heb je ooit naar een verloren huisdier gezocht in huis, kamer voor kamer? Schrijf je eigen code voor een functie om door een woordenboek genaamd house te zoeken om te zien welke kamer een verloren puppy heeft.
Kopieer het woordenboek hieronder om als het huis te fungeren.
local house = {kitchen = "rommelhoop",livingRoom = "kitten",bedroom1 = "niemand daar",bedroom2 = "puppy",}Maak een nieuwe functie genaamd findPet() om het woordenboek te doorzoeken. Voeg parameters toe voor welk woordenboek te doorzoeken en welke waarde te zoeken.
Gebruik pairs() om door het woordenboek te itereren. Probeer je eigen code te schrijven voordat je je werk controleert in de oplossing hieronder.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendTerwijl de for-lus door het woordenboek iterereert, gebruik return om de kamer terug te geven waar het huisdier is gevonden.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend