Una necesidad común en muchas estructuras de datos es devolver valores.Este artículo cubrirá la búsqueda de una tabla usando pairs() o ipairs() por la mitad de cualquier elemento de tabla, como la clave o el valor, para encontrar y devolver la otra mitad.
El ejemplo usa una lista de arrays que esperan ser reparados. ipairs() se usa para devolver el lugar de un barco en la línea.
local shipToFind = "Void Racer"
-- Buques esperando reparación
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Obtener lugar en línea
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Imprimir lugar en línea
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Ejemplo de búsqueda de diccionario
¿Alguna vez has buscado una mascota perdida en la casa pasando de habitación en habitación? En tu propio código una función para buscar a través de un diccionario llamado casa para ver qué habitación contiene un perrito perdido.
Copia el diccionario a continuación para actuar como la casa.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Crea una nueva función llamada findPet() para buscar el diccionario. Incluye parámetros para qué diccionario buscar y qué valor buscar.
Usa pairs() para iterar por el diccionario. Intenta codificar el tuyo antes de verificar tu trabajo en la solución siguiente.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendMientras se repite el bucle for a través del diccionario, utilice return para devolver la habitación donde se encontró la mascota.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend