在Lua中如何合并两个表,使其所有键值对整合到同一表内?
Lua表合并方案
该需求可以直接实现。你之前使用的{tableone, tabletwo}写法是将两个原表作为数组元素插入新表,自然会生成两个独立子表的结构。想要合并所有键值对到同一个表,只需要遍历两个原表的所有键值对写入同一个目标表即可。
实现代码
以下是不修改原有两个表的安全实现方案:
local tableone = {["Gold"] = 10, ["Gem"] = 5} local tabletwo = {["Level"] = 1} -- 通用合并函数:将两个表的键值整合到新表返回,重复键取第二个表的值 local function mergeTables(t1, t2) local result = {} for k, v in pairs(t1) do result[k] = v end for k, v in pairs(t2) do result[k] = v end return result end -- 按需求将合并后的表放到数组索引1的位置 local test = {mergeTables(tableone, tabletwo)}
执行后打印test即可得到你期望的输出结构。如果两个原表存在同名键,上述代码会默认使用第二个表的键值,你可以根据实际需求修改mergeTables内的赋值逻辑调整冲突处理规则。
内容的提问来源于stack exchange,提问作者BULLETBOT
相关产品推荐
相关产品推荐

