Files
wow-ActionBarSaverDaved/TableHelpers.lua
2025-01-04 13:47:04 +01:00

84 lines
1.2 KiB
Lua

Array = {}
Dict = {}
function Array.iter(arr, fn)
for _,v in ipairs(arr) do
fn(v)
end
end
function Array.map(arr, fn)
local t = {}
for _,v in ipairs(arr) do
table.insert(t, fn(v))
end
return t
end
function Array.mapRange(start, stop, fn)
local arr = {}
for i = start, stop do
arr[i] = fn(i)
end
return arr
end
function Array.iterRange(start, stop, fn)
for i = start, stop do
fn(i)
end
end
function Array.contains(arr, value)
for _,v in ipairs(arr) do
if v == value then return true end
end
return false
end
function Array.insert(arr, value, index)
local t = {}
for _, v in ipairs(arr) do
table.insert(t, v)
end
table.insert(t, index, value)
return t
end
function Dict.iter(t, fn)
for k,v in pairs(t) do
fn(k,v)
end
end
function Dict.map(t, fn)
local nt = {}
for k,v in pairs(t) do
nt[k] = fn(k,v)
end
return nt
end
function Dict.keysAsArray(t)
local nt = {}
for k,_ in pairs(t) do
table.insert(nt, k)
end
return nt
end
function Dict.isEmpty(t)
return next(t) == nil
end