有没有办法在lua中将表拆分为两个表?

目标是将一个lua表拆分成两个独立的表。 期望的结果如下: local t1 = { value="foo" } local t2 = { tex="bar" } 从 local t = { { value = "foo", tex = "bar" } }

我没有找到解决这种类型表的方法,因为基本表是动态的,不能更改。 我已经尝试迭代表并仅插入某些项目到新表中,但失败了。

点赞
用户8621712
用户8621712

如果想将一个表格分成两个,你可以这样做:

function SplitInHalf(tbl)
    local t1, t2 = {}, {}  --创建2个新表
    local state = true  --使用一个变量来在t1和t2之间切换
    for k, v in pairs(tbl) do --循环原表
        (state and t1 or t2)[k] = v --根据状态使用t1或t2,并插入一个键
        state = not state --反转状态,如果是true则为false,如果是false则为true
    end
    return t1, t2 --返回新表
end
2021-02-06 11:07:52