Lua 表转换

Lua 表转换,lua,lua-table,Lua,Lua Table,我是lua的新手,我有一个表foo,我想将其转换为bar,如下所示: foo:{key1,value2,key2,value2} ==> bar:{key1=value1,key2=value2} lua是否有一个内置的方法来实现这一点?从您的中,尝试以下方法: local bar, iMax = {}, #foo for i = 1, iMax, 2 do bar[foo[i]] = foo[i + 1] end 这是一个使用迭代器的解决方案: function two(t)

我是lua的新手,我有一个表
foo
,我想将其转换为
bar
,如下所示:

foo:{key1,value2,key2,value2} ==> bar:{key1=value1,key2=value2}
lua是否有一个内置的方法来实现这一点?

从您的中,尝试以下方法:

local bar, iMax = {}, #foo
for i = 1, iMax, 2 do
    bar[foo[i]] = foo[i + 1]
end

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

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}
是字符串键的语法糖。

如何区分键和值?@hjpotter92奇数项是键,偶数项是值