Iterar con ipairs
Recorra las secuencias en orden
Iterar con ipairs es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Lua Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Lua Academy incluye 4 lecciones en total.
Por qué usar ipairs
Recorrer una secuencia por índice funciona, pero ipairs es más sencillo y seguro. Le proporciona cada índice y su valor en orden.
Comienza en el índice 1 y se detiene en el primer nil, por lo que es perfecto para secuencias sin huecos.
local fruits = {"apple", "banana", "cherry"}
for i, v in ipairs(fruits) do
print(i, v)
endLa estructura del bucle
El patrón es for index, value in ipairs(t) do ... end.
En cada iteración, index es la posición basada en 1 y value es el elemento que se encuentra allí. No necesita un contador manual.
local colors = {"red", "green", "blue"}
for i, c in ipairs(colors) do
print("Color", i, "is", c)
endIgnorar el índice
Si solo necesita los valores, asigne el nombre _ al índice, según la convención, para indicar que no se utiliza.
El bucle seguirá visitando los elementos en orden, comenzando en 1.
local nums = {10, 20, 30}
local total = 0
for _, n in ipairs(nums) do
total = total + n
end
print("sum:", total)Comienza en 1 y se detiene en un hueco
ipairs comienza en el índice 1 y continúa mientras el siguiente índice no sea nil.
Si hay un hueco, se detiene allí. Por eso ipairs está pensado para secuencias ordenadas, no para tablas con posiciones ausentes.
local t = {"a", "b", nil, "d"}
for i, v in ipairs(t) do
print(i, v)
endSumar valores
Una tarea frecuente consiste en reducir una lista a un único número, como una suma o un máximo.
ipairs facilita la lectura de este proceso: visite cada valor y acumúlelo.
local prices = {3, 7, 2, 9}
local max = prices[1]
for _, p in ipairs(prices) do
if p > max then max = p end
end
print("max:", max)Construir una lista nueva
Combine ipairs con table.insert para transformar una secuencia en otra.
Aquí duplicamos cada número en una tabla nueva, manteniendo el orden y los índices basados en 1.
local src = {1, 2, 3}
local doubled = {}
for _, n in ipairs(src) do
table.insert(doubled, n * 2)
end
print(doubled[1], doubled[2], doubled[3])ipairs frente a pairs
pairs recorre todas las claves, incluidas las de tipo cadena, en un orden no garantizado. ipairs recorre únicamente la secuencia de enteros 1, 2, 3... en orden.
Para matrices ordenadas, use ipairs.
local t = {"x", "y"}
t.name = "extra"
for i, v in ipairs(t) do
print(i, v)
endFiltrado con una condición
Use un if dentro del bucle para conservar únicamente los elementos que coincidan.
A continuación, recopilamos en una nueva secuencia las palabras que tienen más de tres letras.
local words = {"hi", "hello", "yo", "howdy"}
local long = {}
for _, w in ipairs(words) do
if #w > 3 then table.insert(long, w) end
end
print(long[1], long[2])Buscar un elemento
Para buscar, recorra la secuencia con ipairs y deténgase cuando lo encuentre. El índice le indica la posición basada en 1.
Usamos break para salir en cuanto aparece el elemento buscado.
local names = {"Ann", "Bob", "Cy"}
local found = 0
for i, n in ipairs(names) do
if n == "Bob" then found = i break end
end
print("Bob at index", found)Contar mientras se itera
Puede contar las coincidencias incrementando una variable dentro del bucle.
Así evita manipular directamente los índices y, al mismo tiempo, recorre toda la secuencia.
local marks = {5, 8, 3, 9, 6}
local passes = 0
for _, m in ipairs(marks) do
if m >= 6 then passes = passes + 1 end
end
print("passing:", passes)ipairs anidados
Para una tabla de tablas, anide dos bucles ipairs para recorrer cada celda.
El bucle externo recorre las filas y el interno, las columnas; ambos usan índices basados en 1.
local grid = {{1, 2}, {3, 4}}
for _, row in ipairs(grid) do
for _, cell in ipairs(row) do
print(cell)
end
endComprobación rápida
Recuerde dónde comienza y dónde termina ipairs.
Resumen
Ha aprendido el patrón for i, v in ipairs(t): recorre una secuencia en orden basado en 1 y se detiene en el primer hueco.
Úselo para sumar, filtrar, buscar y transformar listas. A continuación, medirá la longitud con # y ordenará los elementos con table.sort.
Preguntas frecuentes
¿La lección «Iterar con ipairs» es gratis?
Sí — el texto completo de «Iterar con ipairs» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Lua Academy, actualiza a CoddyKit PRO. El curso de Lua Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Iterar con ipairs»?
Recorra las secuencias en orden Practicas Lua Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Lua Academy?
No se requiere experiencia previa. Lua Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Iterar con ipairs»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Lua Academy?
Sí. Cada lección de Lua Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays como tablas
- Añadir y eliminar elementos
- Iterar con ipairs
- Longitud y ordenación