0

我有这样的表设置

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
}

这可能吗?对不起,如果我不擅长解释。

4

1 回答 1

3

你可以用一个简单的嵌套循环来做到这一点。

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]中。

于 2021-08-18T22:30:04.783 回答