Lua表格转换

7

我是lua的新手,我有一个表foo,我希望将它转换成如下的bar

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

Lua有内置的方法来实现这个吗?

2
你如何区分键和值? - hjpotter92
@hjpotter92 奇数项是键,偶数项是值。 - Yohn
2个回答

6

从您的最近的评论中尝试这个:

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

4

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接