I’d like to find out how I would go about turning an array like this:
into an array like this:
Well, you are just doubling the entires in each direction. So you just need to do that in code.
local function stretchNestedArray(array)
local out = {}
for _, row in pairs(array) do
local extendedRow = {}
for _, entry in pairs(row) do
table.insert(extendedRow, entry)
table.insert(extendedRow, entry)
end
table.insert(out, extendedRow)
table.insert(out, extendedRow)
end
return out
end
1 Like
And because I was bored have a recursive version too. The advantage to the recursive one is that you can use any amount of nesting (well, to a very generous limit)
local function recursiveStretch(array, stretchFactor)
stretchFactor = stretchFactor or 2 --default to 2
local out = {}
for _, val in pairs(array) do
if type(val) == "table" then
val = recursiveStretch(val, stretchFactor)
end
for i=1, stretchFactor do
table.insert(out, val)
end
end
return out
end
1 Like
local function create2DArray(rows, columns)
local t = {}
for i = 1, rows do
local row = table.create(columns, 0)
table.insert(t, row)
end
return t
end
local t = create2DArray(3, 3)
print(t)
--[[
{
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}
}
]]