我怎样才能像这样合并两个表? - Lua
How can I merge two tables like this? - Lua
我把这些表设置成这样
local tableone = {["Gold"] = 10, ["Gem"] = 5}
local tabletwo = {["Level"] = 1}
这是合并的代码
local test = {tableone, tabletwo}
print(test)
但是如果我尝试合并表,那么输出是这样的
[1] = {
["Gold"] = 10,
["Gem"] = 5
},
[2] = {
["Level"] = 1
}
我想要这样的输出
[1] = {
["Gold"] = 10,
["Gem"] = 5,
["Level"] = 1
}
这可能吗?
对不起,如果我不善于解释。
您可以使用简单的嵌套循环来完成此操作。
local function merge(...)
local result <const> = {}
-- For each source table
for _, t in ipairs{...} do
-- For each pair in t
for k, v in pairs(t) do
result[k] = v
end
end
return result
end
local t <const> = {merge(tableone, tabletwo)}
由于问题中的 [1]
,我将结果放在 table 构造函数中。
我把这些表设置成这样
local tableone = {["Gold"] = 10, ["Gem"] = 5}
local tabletwo = {["Level"] = 1}
这是合并的代码
local test = {tableone, tabletwo}
print(test)
但是如果我尝试合并表,那么输出是这样的
[1] = {
["Gold"] = 10,
["Gem"] = 5
},
[2] = {
["Level"] = 1
}
我想要这样的输出
[1] = {
["Gold"] = 10,
["Gem"] = 5,
["Level"] = 1
}
这可能吗? 对不起,如果我不善于解释。
您可以使用简单的嵌套循环来完成此操作。
local function merge(...)
local result <const> = {}
-- For each source table
for _, t in ipairs{...} do
-- For each pair in t
for k, v in pairs(t) do
result[k] = v
end
end
return result
end
local t <const> = {merge(tableone, tabletwo)}
由于问题中的 [1]
,我将结果放在 table 构造函数中。