Menu
CoddyTech

Iterar con ipairs()

Parte de la sección Lógica y flujo del Journey de Lua de Coddy. Lección 2 de 54.

Aunque pairs() funciona con cualquier estructura de tabla, Lua proporciona una función especializada llamada ipairs(), diseñada específicamente para tablas de estilo lista. Esta función recorre las tablas en orden secuencial, comenzando por el índice 1 y continuando hasta encontrar un valor nil.

La sintaxis de ipairs() es similar a la de pairs():

for index, value in ipairs(myList) do
    -- usa index y value aquí
end

Aquí tienes un ejemplo con una lista de objetos de misión:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

Salida:

1. Map
2. Compass
3. Torch
4. Rope

La diferencia clave con respecto a pairs() es que ipairs() se detiene inmediatamente cuando encuentra un valor nil, aunque haya más elementos después.

challenge icon

Desafío

Fácil

Escribe una función listTasks que reciba una tabla tasks y devuelva una cadena con formato que enumere todas las tareas con sus números de posición.

Usa ipairs() para iterar por las tareas en orden secuencial y construir una cadena en la que cada línea muestre el número de la tarea seguido del nombre de la tarea con el formato number. task. Cada tarea debe estar en una línea separada.

Parámetros:

  • tasks (table): Una tabla de estilo lista que contiene nombres de tareas como cadenas

Devuelve: Una cadena con cada tarea numerada en una línea separada. Formato: 

1. task1
2. task2
3. task3

Pruébalo tú mismo

function listTasks(tasks)
    -- Escribe el código aquí
end
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Lua online