Un besoin commun dans de nombreuses structures de données est de retourner des valeurs.Cet article couvrira la recherche d'une table en utilisant pairs() ou ipairs() pour la moitié de n'importe quel élément de table, comme la clé ou la valeur, pour trouver et retourner l'autre moitié.
L'exemple utilise une liste d'array de navires en attente de réparation. ipairs() est utilisé pour retourner la place d'un navire dans la ligne.
local shipToFind = "Void Racer"
-- Bateaux en attente de réparation
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Obtenir une place en ligne
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Imprimer l'endroit en ligne
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Exemple de recherche dans le dictionnaire
Avez-vous déjà recherché un animal perdu dans la maison en allant de pièce en pièce ? Dans votre propre code, une fonction pour rechercher à travers un dictionnaire nommé maison pour voir dans quelle pièce se trouve un chiot perdu.
Copiez le dictionnaire ci-dessous pour agir comme la maison.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Créez une nouvelle fonction appelée findPet() pour rechercher le dictionnaire. Incluez des paramètres pour le dictionnaire à rechercher et la valeur à rechercher.
Utilisez pairs() pour itérer à travers le dictionnaire. Essayez de coder le vôtre avant de vérifier votre travail dans la solution ci-dessous.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendPendant que la boucle for itère à travers le dictionnaire, utilisez return pour retourner la salle où l'animal a été trouvé.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend