首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何合并两个表,覆盖两个表中的元素?

如何合并两个表,覆盖两个表中的元素?
EN

Stack Overflow用户
提问于 2009-08-16 03:18:41
回答 8查看 75.2K关注 0票数 79

我需要合并两个表,如果给定的项同时在两个表中,则第二个表的内容将覆盖第一个表中的内容。我看过了,但是标准库似乎不提供这个功能。我在哪里可以得到这样的函数?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-08-16 03:29:25

代码语言:javascript
复制
for k,v in pairs(second_table) do first_table[k] = v end
票数 112
EN

Stack Overflow用户

发布于 2009-08-16 06:26:36

这是我根据Doug Currie的回答想出来的:

代码语言:javascript
复制
function tableMerge(t1, t2)
    for k,v in pairs(t2) do
        if type(v) == "table" then
            if type(t1[k] or false) == "table" then
                tableMerge(t1[k] or {}, t2[k] or {})
            else
                t1[k] = v
            end
        else
            t1[k] = v
        end
    end
    return t1
end
票数 19
EN

Stack Overflow用户

发布于 2011-09-19 20:16:48

这难道不能正常工作吗?

代码语言:javascript
复制
function merge(t1, t2)
    for k, v in pairs(t2) do
        if (type(v) == "table") and (type(t1[k] or false) == "table") then
            merge(t1[k], t2[k])
        else
            t1[k] = v
        end
    end
    return t1
end
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1283388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档