44 lines
980 B
Lua
44 lines
980 B
Lua
-- Copies [key, values] from src into dest, if they do not exist
|
|
function auMergeTable(dest, src)
|
|
auForEachKV(src, function(key, value)
|
|
if (dest[key]) then return end
|
|
dest[key] = value
|
|
end)
|
|
return dest
|
|
end
|
|
|
|
function auCopyTables(...)
|
|
local dest = {}
|
|
local args = table.pack(...)
|
|
for i=1, args.n do
|
|
local tbl = args[i]
|
|
if (tbl) then
|
|
auForEachKV(tbl, function(key, value) dest[key] = value end)
|
|
end
|
|
end
|
|
return dest
|
|
end
|
|
|
|
-- Alternative to auConcatArrays
|
|
-- Copies src into dest
|
|
function auMergeArray(dest, src)
|
|
auForEach(src, function(value)
|
|
table.insert(dest, value)
|
|
end)
|
|
return dest
|
|
end
|
|
|
|
function table.copy(t)
|
|
local u = { }
|
|
for k, v in pairs(t) do u[k] = v end
|
|
--setmetatable(u, getmetatable(t))
|
|
return u
|
|
end
|
|
|
|
function auMap(array, func)
|
|
local tbl = {}
|
|
auForEach(array, function(value)
|
|
table.insert(tbl, func(value))
|
|
end)
|
|
return tbl
|
|
end |