Буду периодически дополнять этот список:
Подсчитать элементы в таблице:
-- Подсчитать элементы в таблице
local function count_table(t)
local count = 0
for _ in pairs(t) do count = count + 1 end
return count
end
Линейный поиск в списке:
-- Проверить, жив ли враг
local function is_enemy_alive(self, enemy_id)
if not self.active_enemies then
return false
end
for _, active_id in ipairs(self.active_enemies) do
if active_id == enemy_id then
return true
end
end
return false
end
Подсчёт длины непрерывного массива. Останавливается на первом nil:
local enemies = {{hp=100}, {hp=50}, {hp=75}}
print(#enemies) -- 3
local broken = {10, 20, nil, 40}
print(#broken) -- 2 (останавливается на nil)
table.maxn(t) — максимальный числовой индекс. Игнорирует nil, работает с “дырками”
local sparse = {[1]="forest", [5]="desert", [10]="space"}
print(table.maxn(sparse)) -- 10 (самый большой индекс)
local with_nil = {10, nil, 30, nil, 50}
print(table.maxn(with_nil)) -- 5 (игнорирует nil)