Lua如何将多个同长度数组按索引对应合并为分组新表
实现方案
核心逻辑
将所有待处理的源表汇总到一个总集合中,双层遍历逐个提取对应索引位置的元素,存入相同索引的分组表即可。
可运行代码
-- 汇总所有待处理的源表,新增表直接追加到该数组内即可 local source_tables = { {'a','b','c','d','e'}, {'aa','bb','cc','dd','ee'}, {'aaa','bbb','ccc','ddc','eee'} } local result_groups = {} -- 遍历所有源表 for _, tbl in ipairs(source_tables) do -- 遍历当前表的索引与对应值 for index, value in ipairs(tbl) do -- 分组不存在则先初始化 result_groups[index] = result_groups[index] or {} -- 追加元素到对应分组 table.insert(result_groups[index], value) end end -- 若需要直接生成group1、group2这类全局变量,可取消注释以下代码 -- for i, group in ipairs(result_groups) do -- _G['group'..i] = group -- end
输出验证
最终result_groups[1]即为{'a','aa','aaa'},result_groups[2]即为{'b','bb','bbb'},和需求的输出结构完全匹配。该实现自动兼容不同长度的源表,不会因部分源表长度较短抛出异常。
内容的提问来源于stack exchange,提问作者이신발
相关产品推荐
相关产品推荐

