Lua表格转换

我新学习lua,我有一个叫做foo的表,我想要把它转化为以下的bar表:

foo:{key1,value2,key2,value2} ==> bar:{key1=value1,key2=value2}

lua有内置的方法可以做到这一点吗?

点赞
用户1190388
用户1190388

从你的最近评论,尝试这个:

local bar, iMax = {}, #foo
for i = 1, iMax, 2 do
    bar[foo[i]] = foo[i + 1]
end
2013-11-12 07:25:21
用户1009479
用户1009479

以下是使用迭代器的一个解决方案:

function two(t)
    local i = -1
    return function() i = i + 2; return t[i], t[i + 1] end
end

然后你可以像这样使用迭代器:

local bar = {}
for k, v in two(foo) do
    bar[k] = v
end

注意,应该使用bar = {[key1]=value1, [key2]=value2}。在你的示例中,{key1=value1,key2=value2}是一种对字符串键的语法糖。

2013-11-12 07:46:25