在 LUA 中向新列表添加 1 个或多个列表[string][string]

我有许多格式如下的大型列表...

listA = {}
   listA['Suburb Name A']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listA['Suburb Name B']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listA['Suburb Name C']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listA['Suburb Name D']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   excreta... .. .

listB = {}
   listB['Suburb Name E']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listB['Suburb Name F']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listB['Suburb Name G']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   listB['Suburb Name H']['Street Name'] = {data1 = 'Stuff', data2 = 'stuff, data3 = 'stuff}
   excreta... .. .

我想做的是将这些列表复制到一个新列表中,这个新列表是合并过的列表。

大概像这样...

ListNew = {}
ListNew = Add(listA, ListNew )
ListNew = Add(listB, ListNew )
ListNew = Add(listC, ListNew )

有什么想法吗?

(编辑后删除了我的错误代码并尝试通过只放入基本信息来使问题更清晰。)

点赞
用户1260774
用户1260774

找到解决方案!感谢任何试图帮助的人。

function add(target, source)
    for i in pairs(source) do
        if target[i] == nil then
            target[i] = {}
        end
        for j in pairs(source[i]) do
            target[i][j] = source[i][j]
        end
    end
end

-- 用法示例
newList = {}
add(newList, listA)
add(newList, listB)
add(newList, listC)
2019-08-10 23:00:36