You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Lua表中的值迁移至该表的子表中?

Lua表结构迁移的简便实现方法

你可以通过两种方式实现需求,分别是修改原表和创建新表(保留原表),具体代码如下:

方法一:直接修改原表

这种方式会直接改动原始表的结构,将原有键值对迁移到内部的letters子表,再添加otherStuff空表:

local original = {
  a = 1,
  b = 2,
  c = 3,
}

-- 初始化letters子表并迁移数据
original.letters = {}
for k, v in pairs(original) do
  if k ~= "letters" then
    original.letters[k] = v
    original[k] = nil -- 删除原表中的旧键
  end
end

-- 添加otherStuff空表
original.otherStuff = {}

方法二:创建新表(不修改原表)

如果需要保留原始表的结构,可以新建一个目标表,将原表数据迁移过去:

local original = {
  a = 1,
  b = 2,
  c = 3,
}

local newTable = {
  letters = {},
  otherStuff = {}
}

-- 迁移原表所有数据到letters子表
for k, v in pairs(original) do
  newTable.letters[k] = v
end

补充说明

如果原表带有元表(metatable),需要额外处理元表的继承逻辑;若是普通的键值对表,上述两种方法都能快速实现需求。

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 22:59:59