Initial commit
This commit is contained in:
84
TableHelpers.lua
Normal file
84
TableHelpers.lua
Normal file
@@ -0,0 +1,84 @@
|
||||
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
|
||||
Reference in New Issue
Block a user