Menu
Coddy logo textTech

Iterar con ipairs()

Parte de la sección Lógica y flujo de control 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 desde el índice 1 y continuando hasta que encuentra 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 pairs() es que ipairs() se detiene inmediatamente cuando encuentra un valor nil, incluso si hay 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 una lista formateada de todas las tareas junto 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 con estilo de 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 de control

Practica por tu cuenta: Compilador de Lua online